CHAIN_MSG_MAP
Define uma entrada em um mapa de mensagem.
CHAIN_MSG_MAP( theChainClass )
Parâmetros
- theChainClass
[in] o nome da classe base que contém o mapa de mensagem.
Comentários
CHAIN_MSG_MAP direciona mensagens a um mapa padrão da mensagem de classe base (declarada com BEGIN_MSG_MAP).Para direcionar mensagens para uma mensagem alternativo da classe base mapear (declarada com ALT_MSG_MAP), use CHAIN_MSG_MAP_ALT.
Observação |
---|
Inicie sempre um mapa de mensagem com BEGIN_MSG_MAP.Você pode declarar em mapas alternativos subseqüentes de mensagem com ALT_MSG_MAP.A macro de END_MSG_MAP marca ao final do mapa de mensagem.Cada mapa de mensagem deve ter 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.
Exemplo
class CMyExtClass : public CMyBaseClass
{
public:
BEGIN_MSG_MAP(CMyExtClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(1)
// chain to first alternative message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map in CMyBaseClass
CHAIN_MSG_MAP_ALT(CMyBaseClass, 1)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnChar(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
Este exemplo ilustra o seguinte:
Se um procedimento de janela estiver usando o mapeamento padrão da mensagem CMyClass e OnPaint não trata uma mensagem, a mensagem é direcionada para o mapeamento padrão da mensagem de CMyBaseClass para processamento.
Se um procedimento de janela estiver usando o primeiro mapa alternativo de mensagem em CMyClass, todas as mensagens são todas direcionados para o mapeamento padrão da mensagem de CMyBaseClass.
Se um procedimento de janela estiver usando o mapa de alternativo de mensagem de CMyClass e OnChar não trata uma mensagem, a mensagem é direcionada ao mapa alternativo especificado na mensagem CMyBaseClass.CMyBaseClass deve ter declarado este mapa de mensagem com ALT_MSG_MAP(1).
Requisitos
Cabeçalho: atlwin.h