BEGIN_MSG_MAP

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

CMessageMap, CDynamicChain

Index