BEGIN_MSG_MAP
Marca el principio del mapa de mensajes predeterminado.
BEGIN_MSG_MAP( theClass )
Parámetros
- theClass
[in] El nombre de la clase que contiene el mapa de mensajes.
Comentarios
CWindowImpl:: WindowProc utiliza el mapa de mensajes predeterminado para procesar los mensajes enviados a la ventana. El mapa de mensajes envía mensajes a la función adecuada de controlador u otro mapa de mensajes.
Las macros siguientes asignan un mensaje a una función de controlador. Esta función se debe definir en theClass.
Macro |
Descripción |
---|---|
Asigna un mensaje de Windows a una función de controlador. |
|
Asigna un intervalo contiguo de los mensajes de Windows a una función de controlador. |
|
Asigna un mensaje de WM_COMMAND a una función controladora, basándose en el código de notificación y el identificador del elemento de menú, del control, o de aceleradores. |
|
Asigna un mensaje de WM_COMMAND a una función controladora, según el identificador del elemento de menú, del control, o de aceleradores. |
|
Asigna un mensaje de WM_COMMAND a una función controladora, basándose en el código de notificación. |
|
Asigna un intervalo contiguo de los mensajes de WM_COMMAND a una función controladora, según el identificador del elemento de menú, del control, o de aceleradores. |
|
Asigna un mensaje de WM_NOTIFY a una función controladora, basándose en el código de notificación y el identificador de control. |
|
Asigna un mensaje de WM_NOTIFY a una función controladora, según el identificador de control. |
|
Asigna un mensaje de WM_NOTIFY a una función controladora, basándose en el código de notificación. |
|
Asigna un intervalo contiguo de los mensajes de WM_NOTIFY a una función controladora, según el identificador de control. |
Las macros siguientes dirigen mensajes a otro mapa de mensajes. este proceso se denomina “encadenamiento.”
Macro |
Descripción |
---|---|
Cadenas al mensaje predeterminado asignado en la clase base. |
|
Cadenas al mensaje predeterminado asignado en un miembro de datos de la clase. |
|
cadenas a un mensaje alternativo asignado en la clase base. |
|
cadenas a un mensaje alternativo asignado en un miembro de datos de la clase. |
|
Cadenas al mensaje predeterminado asignado en otra clase en tiempo de ejecución. |
las macros siguientes dirigen mensajes “reflejados” de la ventana primaria. Por ejemplo, un control envía normalmente mensajes de notificación a su ventana primaria para procesar, pero la ventana primaria puede reflejar el mensaje de nuevo al control.
Macro |
Descripción |
---|---|
Asigna un mensaje reflejado de WM_COMMAND a una función controladora, basándose en el código de notificación y el identificador del elemento de menú, del control, o de aceleradores. |
|
Asigna un mensaje reflejado de WM_COMMAND a una función controladora, según el identificador del elemento de menú, del control, o de aceleradores. |
|
Asigna un mensaje reflejado de WM_COMMAND a una función controladora, basándose en el código de notificación. |
|
Asigna un mensaje reflejado de WM_COMMAND a una función controladora, basándose en un intervalo contiguo de identificadores de control. |
|
Asigna un mensaje reflejado de WM_COMMAND a una función controladora, basándose en el código de notificación y un intervalo contiguo de identificadores de control. |
|
Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, basándose en el código de notificación y el identificador de control. |
|
Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, según el identificador de control. |
|
Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, basándose en el código de notificación. |
|
Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, basándose en un intervalo contiguo de identificadores de control. |
|
Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, basándose en el código de notificación y un intervalo contiguo de identificadores de control. |
Ejemplo
class CMyExtWindow : public CMyBaseWindow
{
public:
BEGIN_MSG_MAP(CMyExtWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnSetFocus(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
cuando un objeto de CMyExtWindow recibe un mensaje de WM_PAINT , el mensaje se dirige a CMyExtWindow::OnPaint para el procesamiento real. Si OnPaint indica el mensaje requiere la transformación posterior, el mensaje se dirija al mensaje predeterminado asignado en CMyBaseWindow.
Además del mapa de mensajes predeterminado, puede definir un mensaje alternativo asignado con ALT_MSG_MAP. Siempre se inicia un mapa de mensajes con BEGIN_MSG_MAP. Puede declarar entonces asigna alternativos subsiguientes del mensaje. El ejemplo siguiente se muestra el mapa predeterminado y un mapa de mensajes alternativo, cada una función de mensaje de controlador que contiene:
BEGIN_MSG_MAP(CMyOneAltClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
El ejemplo siguiente muestra dos mapas alternativos de mensajes. El mapa de mensajes predeterminado está vacío.
BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()
La macro de END_MSG_MAP marca el final del mapa de mensajes. Observe que siempre hay exactamente una instancia de BEGIN_MSG_MAP y de END_MSG_MAP.
Para obtener más información sobre cómo utilizar mapas de mensajes en ATL, vea Mapas de mensajes.
Requisitos
encabezado: atlwin.h