BEGIN_MSG_MAP

BEGIN_MSG_MAP ( theClass )

Parâmetros

theClass

[no] O nome da classe que contém o mapa de mensagem.

Observações

Marca o início do mapa da mensagem padrão. CWindowImpl:: WindowProc usa o mapa de mensagem padrão para processar mensagens enviadas para a janela. O mapa da mensagem direciona mensagens para a função de manipulador apropriado ou para outro mapa da mensagem.

As seguintes macros mapeiam uma mensagem de uma função de manipulador. Esta função deve ser definida em theClass.

Macro Descrição
MESSAGE_HANDLER Mapas uma mensagem do Windows para uma função de manipulador.
MESSAGE_RANGE_HANDLER Mapeia um intervalo contíguo de Windows mensagens para uma função de manipulador.
COMMAND_HANDLER Mapas uma mensagem WM_COMMAND para uma função de manipulador, com base no código de notificação e o identificador do item de menu, Controlarar ou acelerador.
COMMAND_ID_HANDLER Mapas uma mensagem WM_COMMAND para uma função de manipulador, com base no identificador do item de menu, Controlarar ou acelerador.
COMMAND_CODE_HANDLER Mapas uma mensagem WM_COMMAND para uma função de manipulador, com base no código de notificação.
COMMAND_RANGE_HANDLER Mapeia um intervalo contíguo de mensagens WM_COMMAND para uma função de manipulador, com base no identificador do item de menu, Controlarar ou acelerador.
NOTIFY_HANDLER Mapas uma mensagem WM_NOTIFY para uma função de manipulador, com base no código de notificação e o identificador de controle.
NOTIFY_ID_HANDLER Mapas uma mensagem WM_NOTIFY para uma função de manipulador, com base no identificador de controle.
NOTIFY_CODE_HANDLER Mapas uma mensagem WM_NOTIFY para uma função de manipulador, com base no código de notificação.
NOTIFY_RANGE_HANDLER Mapeia um intervalo contíguo de mensagens WM_NOTIFY para uma função de manipulador, com base no identificador de controle.

As seguintes macros direcionam uma mensagem para um outro mapa da mensagem. Este processo é chamado de "encadeamento".

Macro Descrição
CHAIN_MSG_MAP Cadeias à mensagem padrão mapeiam na classe base.
CHAIN_MSG_MAP_MEMBER Cadeias à mensagem padrão mapeiam em um membro de dados da classe.
CHAIN_MSG_MAP_ALT Cadeias a uma mensagem alternativa mapeiam na classe base.
CHAIN_MSG_MAP_ALT_MEMBER Cadeias a uma mensagem alternativa mapeiam em um membro de dados da classe.
CHAIN_MSG_MAP_DYNAMIC Cadeias à mensagem padrão mapeiam na outra classe em tempo de execução.

Exemplo

classe 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)
   { ... }
}

Quando um CMyWindow objeto recebe um WM_PAINT mensagem, a mensagem é direcionada para CMyWindow::OnPaint para o processamento real. Se OnPaint indica a mensagem requer processamento adicional, a mensagem será então direcionado ao mapa da mensagem padrão emCMyBaseWindow.

Além de mapa da mensagem padrão, você pode definir um mapa da mensagem alternativo com ALT_MSG_MAP. Sempre começa um mapa da mensagem com BEGIN_MSG_MAP. Em seguida, você pode declare mapas de mensagem alternativo subseqüentes. O exemplo a seguir mostra o mapa da mensagem padrão e o mapa da mensagem alternativo um, cada um contendo uma função de manipulador:

BEGI&N_MSG_MAP(CMyClass)
 nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

O próximo exemplo mostra dois mapas de mensagem alternativo. O mapa da mensagem padrão está vazio.

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()

A macro END_MSG_MAP marca o final do mapa da mensagem. Observe que sempre é exatamente uma instância de BEGIN_MSG_MAP e END_MSG_MAP.

Para obter mais informações sobre como usar mapas de mensagem no ATL, consulte Mensagem mapas no artigo "Classes de janela do ATL".

ATL Macros e funções Global

Ver também

CMessageMap, CDynamicChain

Index