Partilhar via


BEGIN_MSG_MAP

Marca o início do MAP da mensagem padrão.

BEGIN_MSG_MAP( theClass )

Parâmetros

  • theClass
    [in] O nome da classe que contém o MAP da mensagem.

Comentários

CWindowImpl::WindowProc usa o MAP da mensagem padrão processar mensagens enviadas para a janela.O MAP da mensagem direciona as mensagens para a função de manipulador apropriado ou para outro MAP da mensagem.

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

Macro

Descrição

MESSAGE_HANDLER

Mapeia 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

Mapeia um WM_COMMAND mensagem a uma função de manipulador, com base no código de notificação e o identificador do item de menu, controle ou acelerador.

COMMAND_ID_HANDLER

Mapeia um WM_COMMAND mensagem a uma função de manipulador, com base no identificador do item de menu, controle ou acelerador.

COMMAND_CODE_HANDLER

Mapeia um WM_COMMAND mensagem a uma função de manipulador, com base no código de notificação.

COMMAND_RANGE_HANDLER

Mapeia um intervalo contíguo de WM_COMMAND mensagens para uma função de manipulador, com base no identificador do item de menu, controle ou acelerador.

NOTIFY_HANDLER

Mapeia um WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação e o identificador de controle.

NOTIFY_ID_HANDLER

Mapeia um WM_NOTIFY mensagem a uma função de manipulador, com base no identificador de controle.

NOTIFY_CODE_HANDLER

Mapeia um WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação.

NOTIFY_RANGE_HANDLER

Mapeia um intervalo contíguo de WM_NOTIFY mensagens para uma função de manipulador, com base no identificador de controle.

As seguintes macros direcionam as mensagens para outro MAP da mensagem.Esse processo é chamado de "encadeamento".

Macro

Descrição

CHAIN_MSG_MAP

Cadeias ao MAP da mensagem padrão na classe base.

CHAIN_MSG_MAP_MEMBER

Cadeias ao MAP da mensagem padrão em um membro de dados da classe.

CHAIN_MSG_MAP_ALT

Cadeias de um MAP da mensagem alternativo na classe base.

CHAIN_MSG_MAP_ALT_MEMBER

Cadeias de um MAP da mensagem alternativo em um membro de dados da classe.

CHAIN_MSG_MAP_DYNAMIC

Cadeias ao MAP da mensagem padrão em outra classe em time de execução.

As seguintes macros direcionam "refletida" mensagens de janela pai.Por exemplo, um controle normalmente envia mensagens de notificação para sua janela pai para processamento, mas a janela pai pode refletir a mensagem de volta para o controle.

Macro

Descrição

REFLECTED_COMMAND_HANDLER

Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base no código de notificação e o identificador do item de menu, controle ou acelerador.

REFLECTED_COMMAND_ID_HANDLER

Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base no identificador do item de menu, controle ou acelerador.

REFLECTED_COMMAND_CODE_HANDLER

Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base no código de notificação.

REFLECTED_COMMAND_RANGE_HANDLER

Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base em um intervalo contíguo de identificadores de controle.

REFLECTED_COMMAND_RANGE_CODE_HANDLER

Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base no código de notificação e um intervalo contíguo de identificadores de controle.

REFLECTED_NOTIFY_HANDLER

Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação e o identificador de controle.

REFLECTED_NOTIFY_ID_HANDLER

Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base no identificador de controle.

REFLECTED_NOTIFY_CODE_HANDLER

Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação.

REFLECTED_NOTIFY_RANGE_HANDLER

Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base em um intervalo contíguo de identificadores de controle.

REFLECTED_NOTIFY_RANGE_CODE_HANDLER

Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação e um intervalo contíguo de identificadores de controle.

Exemplo

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;   
   }
};

Quando um CMyExtWindow objeto recebe um WM_PAINT mensagem, a mensagem é direcionada para CMyExtWindow::OnPaint para o processamento real. If OnPaint indica a mensagem requer processamento adicional, será a mensagem e, em seguida, ser direcionado para o MAP da mensagem padrão em CMyBaseWindow.

Juntamente com o MAP da mensagem padrão, você pode definir um MAP da mensagem alternativo com ALT_MSG_MAP.Sempre começam com um MAP da mensagemBEGIN_MSG_MAP. Em seguida, você pode declarar mapas de mensagem subseqüente alternativo.O exemplo a seguir mostra o MAP da mensagem padrão e o MAP da mensagem alternativo um, cada um contendo uma função de manipulador:

BEGIN_MSG_MAP(CMyOneAltClass)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

O exemplo a seguir mostra dois mapas de mensagem alternativo.O MAP da mensagem padrão está vazio.

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

The END_MSG_MAP macro marca o participante do MAP da mensagem.Observe que sempre há exatamente uma instância de BEGIN_MSG_MAP e END_MSG_MAP.

Para obter mais informações sobre o uso de mapas de mensagem em ATL, consulte Mapas de mensagem.

Requisitos

Cabeçalho: atlwin.h

Consulte também

Referência

Classe CMessageMap

Classe CDynamicChain

Outros recursos

Macros de MAP da mensagem (ATL)

Macros ATL