Tecnología

Inicio

Cómo crear mapas de mensajes en MFC

Un sistema operativo Windows es entorno controlado por mensajes. Un evento como un clic del ratón o una señal de impresora envía un mensaje a la aplicación en ejecución que a su vez controla el mensaje. Microsoft Foundation Class (MFC) Biblioteca apoya un modelo de programación controlado por mensajes. Su componente principal es el mapa de mensajes. En este caso, la función OnLButtonDown maneja clic izquierdo del ratón en la clase CMyWindow.

Instrucciones

1 Lanzamiento de su Microsoft Visual Studio. Para este ejemplo Visual C ++ se utilizó 6,0.

2 Crear un proyecto de aplicación de Win32. Haga clic en Archivo, Nuevo, Proyectos y luego "aplicación Win32". Introduzca el nombre que desee en el cuadro de texto "Nombre del proyecto". En la segunda página del asistente, seleccione "Un proyecto vacío". Haga clic en Finalizar y haga clic en OK. Este proyecto no tiene archivos por defecto.

3 Añadir un archivo de origen al proyecto. Haga clic en proyecto, "Añadir al proyecto" Nuevo y seleccione "C ++ archivo de origen". Dar al archivo un nombre en el cuadro de texto "Nombre de archivo". Haga clic en Aceptar."

4


Copia y pega el siguiente código en el archivo de origen:

#incluir

CMyWindow clase: CFrameWnd pública

{

público:

CMyWindow ()

{

Create (NULL, "MFC Mensaje Mapa Demo");

}

OnLButtonDown anular (banderas UINT, punto PuntoC);

DECLARE_MESSAGE_MAP ()

};

BEGIN_MESSAGE_MAP (CMyWindow, CFrameWnd)

ON_WM_LBUTTONDOWN ()

END_MESSAGE_MAP ()

CMyWindow vacío :: OnLButtonDown (banderas UINT, punto PuntoC)

{

CFrameWnd :: OnLButtonDown (banderas, de punto);

MessageBox ( "Botón Izquierda clic");

}

MiApl clase: CWinApp pública

{

CMyWindow * pMyWin;

público:

BOOL InitInstance ()

{

pMyWin = new CMyWindow ();

m_pMainWnd = pMyWin;

m_pMainWnd-> ShowWindow (1);

volver 1;

}

};

MiApl theApp;

5


Entender lo que significa que el código:

DECLARE_MESSAGE_MAP:

Este macro indica a la aplicación que la clase que lo contiene, en este caso "CMyWindow", tiene un mapa de mensajes y puede manejar los mensajes. Sólo las clases derivadas de CCmdTarget pueden ejecutar mapas de mensajes.

BEGIN_MESSAGE_MAP y END_MESSAGE_MAP:

Estas macros pueden ser considerados como los tirantes estrechos abiertos de un mapa de mensajes. "BEGIN_MESSAGE_MAP" toma dos parámetros, el nombre de la clase que aloja el mapa de mensajes, en este caso "CMyWindow", y su inmediato antecesor, "CFrameWnd".

ON_WM_LBUTTONDOWN:

Esta es la macro de la especialidad que se especifica que maneja CMyWindow clic izquierdo del ratón a través de la OnLButtonDown función. Cuando un clic izquierdo del ratón se asocia con la clase CMyWindow OnLButtonDown es llamado automáticamente.

6 Haga clic y ejecutar el programa. Haga clic en "Build" en el menú y "Compilar program_name". Espere hasta que se compile. Haga clic en "Build" y "Ejecutar program_name".

Consejos y advertencias

  • Una clase sólo puede tener un mapa de mensajes.