CHAIN_MSG_MAP_MEMBER
Define uma entrada em um MAP da mensagem.
CHAIN_MSG_MAP_MEMBER( theChainMember )
Parâmetros
- theChainMember
[in] O nome do membro de dados que contém o MAP da mensagem.
Comentários
CHAIN_MSG_MAP_MEMBER direciona as mensagens para MAP da mensagem padrão de um membro de dados (declarado com BEGIN_MSG_MAP).Para direcionar mensagens de MAP da mensagem alternativo de um membro de dados (declarado com ALT_MSG_MAP), use CHAIN_MSG_MAP_ALT_MEMBER.
Observação: |
---|
Sempre começam com um MAP da mensagem BEGIN_MSG_MAP.Em seguida, você pode declarar mensagem subseqüente alternativo mapas com ALT_MSG_MAP. The END_MSG_MAP macro marca o participante do MAP da mensagem.Cada MAP da mensagem deve ter 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.
Exemplo
class CMyContainerClass : public CWindowImpl<CMyContainerClass>
{
public:
CMyContainedClass m_obj;
BEGIN_MSG_MAP(CMyContainerClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map of m_obj
CHAIN_MSG_MAP_MEMBER(m_obj)
ALT_MSG_MAP(1)
// chain to default message map of m_obj
CHAIN_MSG_MAP_MEMBER(m_obj)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map of m_obj
CHAIN_MSG_MAP_ALT_MEMBER(m_obj, 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 é usando CMyClassMAP da mensagem padrão e OnPaint faz não alça para que uma mensagem, a mensagem é direcionada m_objdo MAP da mensagem padrão para processamento.
Se um procedimento de janela é usando o MAP da mensagem alternativo primeiro em CMyClass, todas as mensagens são direcionadas para m_objMAP da mensagem padrão.
Se um procedimento de janela é usando CMyClassda segunda mensagem alternativa mapear e OnChar faz não alça que uma mensagem, a mensagem é direcionada para o MAP da mensagem alternativo especificado do m_obj. De classeCMyContainedClass deve ter declarado este MAP da mensagem com ALT_MSG_MAP(1).
Requisitos
Cabeçalho: atlwin.h