Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/08/2011, 12:39
Avatar de sephirot47
sephirot47
 
Fecha de Ingreso: marzo-2011
Ubicación: BCN
Mensajes: 54
Antigüedad: 13 años, 2 meses
Puntos: 9
Pregunta Meter CView en CFrameWnd ( MFC )

Hola !

Tengo un problema desde varios días con MFC y no encuentro solución alguna por internet. El problema es el siguiente:

Tengo entendido que el CView es, por así decirlo, el interior de una ventana( todo excepto los bordes ).
Lo que quiero hacer es crear una clase que herede de CView( llamale CMyView), con su propio método OnDraw, y añadir un objeto de CMyView a una CFrameWnd.

Lo que me ocurre es que no encuentro ningún método para cambiar la CView de una CFrameWnd...bueno, sí, encontré la función SetActiveView(); pero me da errores...

Os pongo el código:

Código C++:
Ver original
  1. #include <afxwin.h>
  2. #include <afx.h>
  3.  
  4. class MyFrame : public CFrameWnd{
  5.  
  6. public:
  7.  
  8.     MyFrame(){
  9.        
  10.         Create(0, TEXT("Hello World !"));
  11.         ShowWindow(SW_NORMAL);
  12.  
  13.         MyView* mv = new MyView();
  14.  
  15.         SetActiveView(mv); //Esta línea no sé si está bien :S
  16.     }
  17.  
  18. };
  19.  
  20. class MyView : public CView{
  21.  
  22. public:
  23.  
  24.     MyView(){
  25.        
  26.     }
  27.  
  28.     ~MyView();
  29.  
  30.     void OnDraw( CDC *pDC ){
  31.    
  32.         //Dibujamos un cuadrado rojo de 100x100 ( por hacer algo )
  33.  
  34.         HDC hdc = pDC->GetSafeHdc();
  35.         FillRect(hdc, CRect(0,0, 100, 100), CBrush(RGB(255, 0, 0)) );
  36.  
  37.         ////////////
  38.        
  39.         return CView::OnDraw(pDC);
  40.     }
  41. };
  42.  
  43. class MyApp : public CWinApp{
  44.  
  45. public:
  46.  
  47.     int InitInstance(){
  48.  
  49.         MyFrame *f = new MyFrame();
  50.         m_pMainWnd = f;
  51.  
  52.         return 1;
  53.     }
  54. };
  55.  
  56. MyApp a;

Muchas gracias por adelantado...y si no encontráis la solución, por favor, explicadme un poco lo que es el CView, que no me entero mucho

GRACIAS !!!
__________________
Todo lo que tiene un inicio tiene un final inevitable...

¡ No olvides darme karma si te fui útil ^^ !