Compartilhar via


CHAIN_MSG_MAP_MEMBER

Define uma entrada em um mapa de mensagem.

CHAIN_MSG_MAP_MEMBER( theChainMember )

Parâmetros

  • theChainMember
    [in] o nome do membro de dados que contém o mapa de mensagem.

Comentários

CHAIN_MSG_MAP_MEMBER direciona mensagens ao mapa padrão de mensagens do membro de dados (declarada com BEGIN_MSG_MAP).Para direcionar mensagens a mensagem alternativo de um membro de dados mapear (declarada com ALT_MSG_MAP), use CHAIN_MSG_MAP_ALT_MEMBER.

ObservaçãoObservaçã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 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 estiver usando o mapeamento padrão da mensagem de CMyClass e OnPaint não trata uma mensagem, a mensagem é direcionada para o mapeamento padrão da mensagem de m_obj 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 m_obj.

  • 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 de m_obj.A classe CMyContainedClass deve ter declarado este mapa de mensagem com ALT_MSG_MAP(1).

Requisitos

Cabeçalho: atlwin.h

Consulte também

Referência

CHAIN_MSG_MAP

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

Outros recursos

Macros do mapa de mensagens (ATL)

Macros de ATL