Partilhar via


CHAIN_MSG_MAP

Define uma entrada em um MAP da mensagem.

CHAIN_MSG_MAP( theChainClass )

Parâmetros

  • theChainClass
    [in] O nome da classe base que contém o MAP da mensagem.

Comentários

CHAIN_MSG_MAP direciona as mensagens para o MAP da mensagem padrão da classe base (declarado com BEGIN_MSG_MAP).Para direcionar mensagens de MAP da mensagem alternativo da classe base (declarado com ALT_MSG_MAP), use CHAIN_MSG_MAP_ALT.

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 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 é usando CMyClassMAP da mensagem padrão e OnPaint faz não alça para que uma mensagem, a mensagem é direcionada CMyBaseClassdo 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 CMyBaseClassMAP da mensagem padrão.

  • Se um procedimento de janela é usando CMyClassda segunda mensagem alternativa mapear e OnChar faz não alça em que uma mensagem, a mensagem é direcionada para o MAP da mensagem alternativo especificado CMyBaseClass. CMyBaseClass deve ter declarado este MAP da mensagem com ALT_MSG_MAP(1).

Requisitos

Cabeçalho: atlwin.h

Consulte também

Referência

CHAIN_MSG_MAP_MEMBER

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

Outros recursos

Macros de MAP da mensagem (ATL)

Macros ATL