- Voy a prendiendo mientras escribo este blog.
- Todos los ejemplos son probados en Visual C++ 2010 Profesional
- Nada más
La "Microsoft Foundation Classes" es una librería que "envuelve" porciones de la API de windows en clases de c++(según la wikipedia)
MFC nos provee de dos clases bastante importantes, CWinApp y CFrameWnd. CWinApp es la que posee las funcionalidades a nivel aplicación y CFrameWnd es la encargada de manejar la GUI. Ambas heredan de CCmdTarget, clase encargada de manejar el mapa de mensajes que a su ves hereda de CObject, "The principal base class for the Microsoft Foundation Class Library." según la microsoft.
CWinApp posee una función(operación, método, como quieran llamarla) virtual ("sobre-escribible") muy importante llamada InitInstance(), encargada de la inicialización de la instancia, y un miembro m_pMainWin que es un puntero a la ventana que vamos a programar.
Ya sabiendo todo esto, empecemos con un pequeño ejemplo, generamos un nuevo proyecto "WIN32" desde el Visual Studio 2010, y seleccionamos la opción "proyecto vacío", luego creamos un archivo de codigo fuente "MFC.cpp" y copiamos lo que esta aca abajo
#define _AFXDLL
#include < afxwin.h >
class CMyFrame;
class CMyApp;
class CMyFrame:public CFrameWnd{
friend class CMyApp;
CMyFrame(){
Create(NULL,"Juampi");
}
};
class CMyApp:public CWinApp{
private:
CMyFrame *MyFrame;
public:
BOOL InitInstance(){
MyFrame = new CMyFrame();
m_pMainWnd = MyFrame;
m_pMainWnd->ShowWindow(1);
return true;
}
};
CMyApp MyApp;
Seguramente va a saltar un error de compilación, para solucionarlo vamos a "Proyecto->Propiedades de ...->Propiedades de configuración->General->Juego de Caracteres y lo ponemos en "multibyte"
Ahora si podemos ver que aparece una ventana sin nada adentro y que de título dice "Juampi"