BEGIN_MSG_MAP ( theClass )
Parámetros
theClass
[en] El nombre de la clase que contiene el mapa de mensajes.
Observaciones
Marca el comienzo de la ruta de mensaje predeterminado. CWindowImpl::WindowProc utiliza el mapa de mensajes por defecto proceso mensajes enviados a la ventana. El mapa de mensajes dirige mensajes a la función de controlador apropiado o a otro mapa de mensajes.
Las siguientes macros asignan un mensaje a una función de controlador. Esta función debe estar definida en theClass.
| Macro | Descripción |
| MESSAGE_HANDLER | Un mensaje de Windows se asigna a una función de controlador. |
| MESSAGE_RANGE_HANDLER | Mapas de mensajes de un intervalo contiguo de Windows a una función de controlador. |
| COMMAND_HANDLER | Un mensaje WM_COMMAND se asigna a una función de controlador, basada en el código de notificación y el identificador del elemento de menú, control o acelerador. |
| COMMAND_ID_HANDLER | Un mensaje WM_COMMAND se asigna a una función de controlador, basada en el identificador del elemento de menú, control o acelerador. |
| COMMAND_CODE_HANDLER | Un mensaje WM_COMMAND se asigna a una función de controlador, basada en el código de notificación. |
| COMMAND_RANGE_HANDLER | Asigna un intervalo contiguo de mensajes WM_COMMAND a una función de controlador, basada en el identificador del elemento de menú, control o acelerador. |
| NOTIFY_HANDLER | Un mensaje WM_NOTIFY se asigna a una función de controlador, basada en el código de notificación y el identificador del control. |
| NOTIFY_ID_HANDLER | Un mensaje WM_NOTIFY se asigna a una función de controlador, basada en el identificador de control. |
| NOTIFY_CODE_HANDLER | Un mensaje WM_NOTIFY se asigna a una función de controlador, basada en el código de notificación. |
| NOTIFY_RANGE_HANDLER | Asigna un intervalo contiguo de mensajes WM_NOTIFY a una función de controlador, basada en el identificador de control. |
Las siguientes macros dirigen un mensaje a otro mapa de mensajes. Este proceso se denomina "encadenamiento".
| Macro | Descripción |
| CHAIN_MSG_MAP | Mapa de cadenas para el mensaje predeterminado de la clase base. |
| CHAIN_MSG_MAP_MEMBER | Mapa de cadenas para el mensaje predeterminado en un miembro de datos de la clase. |
| CHAIN_MSG_MAP_ALT | Mapa de cadenas a un mensaje alternativo en la clase base. |
| CHAIN_MSG_MAP_ALT_MEMBER | Mapa de cadenas a un mensaje alternativo en un miembro de datos de la clase. |
| CHAIN_MSG_MAP_DYNAMIC | Mapa de cadenas para el mensaje predeterminado en otra clase en tiempo de ejecución. |
Ejemplo
clase CMyWindow:...
{
público:
nbsp; ...
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
}
Cuando un CMyWindow objeto recibe un WM_PAINT mensaje, el mensaje está dirigido a CMyWindow::OnPaint para la transformación real. Si OnPaint indica el mensaje requiere más procesamiento, la voluntad de mensaje entonces dirigirse al mapa de mensaje predeterminado enCMyBaseWindow.
Además de la ruta de mensaje predeterminado, puede definir un mapa de mensajes alternativos con ALT_MSG_MAP. Siempre empezar un mapa de mensajes con BEGIN_MSG_MAP. A continuación, puede declarar mapas de mensajes alternativos posteriores. En el ejemplo siguiente se muestra el mapa de mensaje predeterminado y un mensaje alternativo, cada uno con una función de controlador:
BEGI&N_MSG_MAP(CMyClass)
nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
El ejemplo siguiente muestra dos mapas de mensajes alternativos. El mapa de mensajes por defecto está vacío.
BEGI&N_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
MESSAGE_HANDLER (WM_CREATE, OnCreate)
END_MSG_MAP()
La macro END_MSG_MAP marca el final de la ruta de mensaje. Tenga en cuenta que siempre es exactamente una instancia de BEGIN_MSG_MAP y END_MSG_MAP.
Para obtener más información acerca del uso de mapas de mensajes en ATL, vea Mapas de mensaje en el artículo "Clases de ventana ATL".
ATL Macros y funciones globales
Véase también