C/Visual C - Programador de aplicaciones en Lenguaje Visual C++

 
Vista:

Programador de aplicaciones en Lenguaje Visual C++

Publicado por David Mata Megias (2 intervenciones) el 19/09/2001 09:44:04
Es posible crear una vista derivada de CView si el proyecto lo he creado con la clase CFormView.Si alguien conoce como se hace por favor manda respuesta, gracias.
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 una vista derivada de CView desde CFormView

Publicado por Alejandro (913 intervenciones) el 15/10/2024 20:53:22
Sí, es posible crear una vista derivada de `CView` incluso si tu proyecto se ha creado utilizando `CFormView`. Sin embargo, hay algunos pasos que debes seguir para realizar esta transición. Aquí te explico cómo hacerlo:

1. Crear una nueva clase derivada de CView:
- En tu proyecto, crea una nueva clase que derive de `CView`. Puedes hacerlo desde el menú de clases en Visual Studio:
- Haz clic derecho en tu proyecto en el Explorador de soluciones.
- Selecciona "Agregar" > "Clase".
- Elige "Clase MFC" y selecciona `CView` como clase base.

2. Modificar el archivo de recursos:
- Si tu vista original es un `CFormView`, es probable que tengas un recurso de diálogo asociado. Si deseas que tu nueva vista `CView` use un recurso diferente, asegúrate de crear un nuevo recurso de diálogo o modificar el existente.
- Abre el archivo de recursos (.rc) y agrega un nuevo recurso de diálogo si es necesario.

3. Implementar la nueva vista:
- En la nueva clase derivada de `CView`, implementa los métodos necesarios como `OnDraw`, `OnInitialUpdate`, etc. Aquí tienes un ejemplo básico:

1
2
3
4
5
6
7
8
void CMyView::OnDraw(CDC* pDC) {
    // Código para dibujar en la vista
}
 
void CMyView::OnInitialUpdate() {
    CView::OnInitialUpdate();
    // Inicialización adicional
}

4. Actualizar el documento:
- Asegúrate de que tu clase de documento esté configurada para trabajar con la nueva vista. Esto puede implicar modificar el método `OnCreate` en tu clase de documento para crear la nueva vista.

5. Modificar el marco principal:
- En tu clase de marco (normalmente derivada de `CFrameWnd`), asegúrate de que la vista se cree correctamente. Esto puede implicar cambiar el código en el método `OnCreate` del marco para instanciar tu nueva vista en lugar de la vista de formulario.

1
2
3
4
5
BOOL CMyFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) {
    // Crear la nueva vista
    CMyView* pView = new CMyView();
    // Código para agregar la vista al marco
}

6. Compilar y probar:
- Una vez que hayas realizado todos los cambios, compila tu proyecto y prueba la nueva vista para asegurarte de que funcione como esperas.

¡Espero que esto te ayude, David!
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