C/Visual C - visual c++ v6.0

 
Vista:

visual c++ v6.0

Publicado por wilfredo (1 intervención) el 02/05/2001 18:14:33
necesito crear una vista usando la clase cctrlview
(no se puede usar wizzard),CDocument,etc.Lo que tengo que hacer es un editor de texto pequeño(tipo notepad),tengo el siguiente problema: para crear la vista se debe derivar de CCtrlview y en la clase derivada crear un objeto del tipo CEdit para poner tener un control de edicion,luego de definir los constructores y de llamar al metodo Create(..,..,..) para Cedit,deberia crearme la vista y yo poner escribir en el area de cliente,lo que ocurre es que se crea la vista pero no se puede escribir nada.

si pueden decirme como hacerlo sin usar wizzard ni controles activex.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Crear un editor de texto utilizando la clase CCtrlView

Publicado por Alejandro (913 intervenciones) el 24/09/2024 17:53:07
Wilfredo, para crear un editor de texto simple utilizando la clase CCtrlView en Visual C++ 6.0 sin utilizar el wizard ni controles ActiveX, puedes seguir estos pasos:

1. Crea un nuevo proyecto de Visual C++ 6.0 y selecciona "MFC AppWizard (exe)" como tipo de proyecto.

2. En la configuración del proyecto, desmarca la opción "Use MFC in a shared DLL" para evitar problemas de enlace.

3. En el archivo de origen principal (por ejemplo, MainFrm.cpp), agrega el siguiente código para crear la vista derivada de CCtrlView:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "MyView.h" // Reemplaza "MyView" con el nombre que desees para tu vista
 
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
    // Crea una vista derivada de CCtrlView
    m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, pContext);
 
    // Crea un objeto CEdit dentro de la vista
    CRect rect;
    m_wndView.GetClientRect(&rect);
    m_wndEdit.Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, rect, &m_wndView, AFX_IDW_PANE_FIRST);
 
    // Establece la fuente del control de edición
    CFont* pFont = CFont::FromHandle((HFONT)GetStockObject(DEFAULT_GUI_FONT));
    m_wndEdit.SetFont(pFont);
 
    // Establece la vista como la vista activa
    SetActiveView(&m_wndView);
 
    return TRUE;
}

4. Crea un nuevo archivo de encabezado (por ejemplo, MyView.h) y agrega la siguiente declaración de clase para tu vista derivada de CCtrlView:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
 
class CMyView : public CCtrlView
{
protected:
    CEdit m_wndEdit;
 
public:
    CMyView() {}
 
    virtual void OnDraw(CDC* /*pDC*/) {}
    virtual BOOL PreCreateWindow(CREATESTRUCT& cs)
    {
        cs.style |= WS_CLIPCHILDREN;
        return CCtrlView::PreCreateWindow(cs);
    }
 
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    DECLARE_MESSAGE_MAP()
};

5. En el archivo de implementación de la vista (por ejemplo, MyView.cpp), agrega el siguiente código para manejar los mensajes y eventos de la vista:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include "MyView.h"
 
BEGIN_MESSAGE_MAP(CMyView, CCtrlView)
    ON_WM_CREATE()
END_MESSAGE_MAP()
 
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CCtrlView::OnCreate(lpCreateStruct) == -1)
        return -1;
 
    return 0;
}

6. Compila y ejecuta el proyecto. Deberías ver una ventana con un área de cliente donde puedes escribir y editar texto.

Recuerda que este es solo un ejemplo básico para crear un editor de texto simple utilizando la clase CCtrlView en Visual C++ 6.0. Puedes agregar funcionalidades adicionales según tus necesidades, como guardar y cargar archivos, opciones de formato de texto, etc.

Es importante tener en cuenta que Visual C++ 6.0 es una versión muy antigua del compilador y no es compatible con los estándares modernos de C++. Te recomendaría considerar utilizar una versión más actualizada de Visual C++ o un IDE más moderno, como Visual Studio Community, que ofrece mejores características y soporte para el desarrollo de aplicaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar