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 |
---|---|
Mapeia uma mensagem do Windows para uma função de manipulador. |
|
Mapeia um intervalo contíguo de Windows mensagens para uma função de manipulador. |
|
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. |
|
Mapeia um WM_COMMAND mensagem a uma função de manipulador, com base no identificador do item de menu, controle ou acelerador. |
|
Mapeia um WM_COMMAND mensagem a uma função de manipulador, com base no código de notificação. |
|
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. |
|
Mapeia um WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação e o identificador de controle. |
|
Mapeia um WM_NOTIFY mensagem a uma função de manipulador, com base no identificador de controle. |
|
Mapeia um WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação. |
|
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 |
---|---|
Cadeias ao MAP da mensagem padrão na classe base. |
|
Cadeias ao MAP da mensagem padrão em um membro de dados da classe. |
|
Cadeias de um MAP da mensagem alternativo na classe base. |
|
Cadeias de um MAP da mensagem alternativo em um membro de dados da classe. |
|
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 |
---|---|
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. |
|
Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base no identificador do item de menu, controle ou acelerador. |
|
Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base no código de notificação. |
|
Mapeia um refletido WM_COMMAND mensagem a uma função de manipulador, com base em um intervalo contíguo de identificadores de controle. |
|
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. |
|
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. |
|
Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base no identificador de controle. |
|
Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base no código de notificação. |
|
Mapeia um refletido WM_NOTIFY mensagem a uma função de manipulador, com base em um intervalo contíguo de identificadores de controle. |
|
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