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

MESSAGE_HANDLER

Asigna un mensaje de Windows a una función de controlador.

MESSAGE_RANGE_HANDLER

Asigna un intervalo contiguo de los mensajes de Windows a una función de controlador.

COMMAND_HANDLER

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.

COMMAND_ID_HANDLER

Asigna un mensaje de WM_COMMAND a una función controladora, según el identificador del elemento de menú, del control, o de aceleradores.

COMMAND_CODE_HANDLER

Asigna un mensaje de WM_COMMAND a una función controladora, basándose en el código de notificación.

COMMAND_RANGE_HANDLER

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.

NOTIFY_HANDLER

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.

NOTIFY_ID_HANDLER

Asigna un mensaje de WM_NOTIFY a una función controladora, según el identificador de control.

NOTIFY_CODE_HANDLER

Asigna un mensaje de WM_NOTIFY a una función controladora, basándose en el código de notificación.

NOTIFY_RANGE_HANDLER

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

CHAIN_MSG_MAP

Cadenas al mensaje predeterminado asignado en la clase base.

CHAIN_MSG_MAP_MEMBER

Cadenas al mensaje predeterminado asignado en un miembro de datos de la clase.

CHAIN_MSG_MAP_ALT

cadenas a un mensaje alternativo asignado en la clase base.

CHAIN_MSG_MAP_ALT_MEMBER

cadenas a un mensaje alternativo asignado en un miembro de datos de la clase.

CHAIN_MSG_MAP_DYNAMIC

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

REFLECTED_COMMAND_HANDLER

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.

REFLECTED_COMMAND_ID_HANDLER

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.

REFLECTED_COMMAND_CODE_HANDLER

Asigna un mensaje reflejado de WM_COMMAND a una función controladora, basándose en el código de notificación.

REFLECTED_COMMAND_RANGE_HANDLER

Asigna un mensaje reflejado de WM_COMMAND a una función controladora, basándose en un intervalo contiguo de identificadores de control.

REFLECTED_COMMAND_RANGE_CODE_HANDLER

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.

REFLECTED_NOTIFY_HANDLER

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.

REFLECTED_NOTIFY_ID_HANDLER

Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, según el identificador de control.

REFLECTED_NOTIFY_CODE_HANDLER

Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, basándose en el código de notificación.

REFLECTED_NOTIFY_RANGE_HANDLER

Asigna un mensaje reflejado de WM_NOTIFY a una función controladora, basándose en un intervalo contiguo de identificadores de control.

REFLECTED_NOTIFY_RANGE_CODE_HANDLER

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

Vea también

Referencia

CMessageMap Class

CDynamicChain Class

Otros recursos

Message Map Macros (ATL)

Macros de ATL