Condividi tramite


CHAIN_MSG_MAP_MEMBER

Definisce una voce in una mappa dei messaggi.

CHAIN_MSG_MAP_MEMBER( theChainMember )

Parametri

  • theChainMember
    [in] il nome del membro dati che contiene la mappa messaggi.

Note

CHAIN_MSG_MAP_MEMBER indirizzare i messaggi alla mappa messaggi predefinita di un membro dati (dichiarata con BEGIN_MSG_MAP).Per indirizzare i messaggi alla mappa messaggi alternativa di un membro dati (dichiarata con ALT_MSG_MAP), utilizzare CHAIN_MSG_MAP_ALT_MEMBER.

[!NOTA]

Inizia sempre una mappa messaggi con BEGIN_MSG_MAP.È quindi possibile dichiarare le mappe messaggi alternate successive con ALT_MSG_MAP.La macro END_MSG_MAP contrassegna la fine della mappa messaggi.Ogni mappa messaggi deve contenere esattamente un'istanza BEGIN_MSG_MAP e END_MSG_MAP.

Per ulteriori informazioni sull'utilizzo delle mappe dei messaggi in ATL, vedere Mappe messaggi.

Esempio

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;   
   }
};

In questo esempio viene illustrato quanto segue:

  • Se una routine della finestra utilizzano la mappa messaggi predefinita di CMyClass e OnPaint non gestisce un messaggio, il messaggio viene indirizzato alla mappa messaggi predefinita di m_obj per l'elaborazione.

  • Se una routine della finestra utilizzano la prima mappa messaggi alternativa in CMyClass, tutti i messaggi vengono indirizzati alla mappa messaggi predefinita di m_obj.

  • Se una routine della finestra utilizzano la mappa messaggi secondo tipo di CMyClass e OnChar non gestisce un messaggio, il messaggio viene indirizzato alla mappa messaggi alternativa specificata m_obj.La classe CMyContainedClass deve dichiarare questa mappa messaggi con ALT_MSG_MAP(1).

Requisiti

Header: atlwin.h

Vedere anche

Riferimenti

CHAIN_MSG_MAP

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

Altre risorse

Macro della mappa messaggi (ATL)

Macro ATL