BEGIN_MSG_MAP
Marca o início do mapa padrão de mensagem.
BEGIN_MSG_MAP( theClass )
Parâmetros
- theClass
[in] o nome de classe que contém o mapa de mensagem.
Comentários
CWindowImpl::WindowProc usa o mapeamento padrão de mensagens para processar mensagens enviadas para a janela.O mapa de mensagem direciona mensagens para a função apropriada do manipulador ou a outro mapa de mensagem.
Os seguintes macros mapeiam uma mensagem a uma função de manipulador.Essa função deve ser definida em theClass.
Macro |
Descrição |
---|---|
Mapeia uma mensagem do windows para uma função do manipulador. |
|
Mapeia um intervalo contígua de mensagens do windows para uma função do manipulador. |
|
Mapeia uma mensagem de WM_COMMAND a uma função de manipulador, com base no código de notificação e o identificador do item de menu, do controle, ou de aceleração. |
|
Mapeia uma mensagem de WM_COMMAND a uma função de manipulador, com base no identificador do item de menu, do controle, ou de aceleração. |
|
Mapeia uma mensagem de WM_COMMAND a uma função de manipulador, com base no código de notificação. |
|
Mapeia um intervalo contígua de mensagens de WM_COMMAND a uma função de manipulador, com base no identificador do item de menu, do controle, ou de aceleração. |
|
Mapeia uma mensagem de WM_NOTIFY a uma função de manipulador, com base no código de notificação e o identificador de controle. |
|
Mapeia uma mensagem de WM_NOTIFY a uma função de manipulador, com base no identificador de controle. |
|
Mapeia uma mensagem de WM_NOTIFY a uma função de manipulador, com base no código de notificação. |
|
Mapeia um intervalo contígua de mensagens de WM_NOTIFY a uma função de manipulador, com base no identificador de controle. |
Os seguintes macros direcionam mensagens para outro mapa de mensagem.Esse processo é chamado “encadeamento”.
Macro |
Descrição |
---|---|
Cadeias ao mapa padrão de mensagem na classe base. |
|
Cadeias ao mapa padrão de mensagem em um membro de dados da classe. |
|
Cadeias a um mapa alternativo de mensagem na classe base. |
|
Cadeias a um mapa alternativo de mensagem em um membro de dados da classe. |
|
Cadeias ao mapa padrão de mensagem em outra classe em tempo de execução. |
Os seguintes macros direcionam mensagens “refletidas” da janela pai.Por exemplo, um controle envia normalmente notificações para sua janela pai para processar, mas a janela pai é possível refletir a mensagem de volta para o controle.
Macro |
Descrição |
---|---|
Mapeia uma mensagem refletida de WM_COMMAND a uma função de manipulador, com base no código de notificação e o identificador do item de menu, do controle, ou de aceleração. |
|
Mapeia uma mensagem refletida de WM_COMMAND a uma função de manipulador, com base no identificador do item de menu, do controle, ou de aceleração. |
|
Mapeia uma mensagem refletida de WM_COMMAND a uma função de manipulador, com base no código de notificação. |
|
Mapeia uma mensagem refletida de WM_COMMAND a uma função de manipulador, com base em um intervalo contígua de identificadores de controle. |
|
Mapeia uma mensagem refletida de WM_COMMAND a uma função de manipulador, com base no código de notificação e em um intervalo contígua de identificadores de controle. |
|
Mapeia uma mensagem refletida de WM_NOTIFY a uma função de manipulador, com base no código de notificação e o identificador de controle. |
|
Mapeia uma mensagem refletida de WM_NOTIFY a uma função de manipulador, com base no identificador de controle. |
|
Mapeia uma mensagem refletida de WM_NOTIFY a uma função de manipulador, com base no código de notificação. |
|
Mapeia uma mensagem refletida de WM_NOTIFY a uma função de manipulador, com base em um intervalo contígua de identificadores de controle. |
|
Mapeia uma mensagem refletida de WM_NOTIFY a uma função de manipulador, com base no código de notificação e em um intervalo contígua 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 objeto de CMyExtWindow recebe uma mensagem de WM_PAINT , a mensagem é direcionada a CMyExtWindow::OnPaint para o processamento real.Se OnPaint indica a mensagem requer processamento adicional, a mensagem será direcionada para o mapeamento padrão de mensagem em CMyBaseWindow.
Além do mapa padrão de mensagem, você pode definir um mapa alternativo de mensagem com ALT_MSG_MAP.Inicie sempre um mapa de mensagem com BEGIN_MSG_MAP.Você pode declarar em mapas alternativos subseqüentes de mensagem.O exemplo a seguir mostra o mapeamento padrão de mensagem e um mapa alternativo de mensagem, cada 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 alternativas de mensagem.O mapeamento padrão de mensagem está vazia.
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()
A macro de END_MSG_MAP marca ao final do mapa de mensagem.Observe que há sempre exatamente uma instância de BEGIN_MSG_MAP e de END_MSG_MAP.
Para obter mais informações sobre como usar mapas de mensagem em ATL, consulte Mapas de mensagem.
Requisitos
Cabeçalho: atlwin.h