Compartir a través de


CHAIN_MSG_MAP_MEMBER

Define una entrada en un mapa de mensajes.

CHAIN_MSG_MAP_MEMBER( theChainMember )

Parámetros

  • theChainMember
    [in] El nombre del miembro de datos que contiene el mapa de mensajes.

Comentarios

CHAIN_MSG_MAP_MEMBER envía mensajes al mapa de mensajes predeterminado de un miembro de datos (declarado con BEGIN_MSG_MAP). Para enviar mensajes al mapa de mensajes alternativo de un miembro de datos (declarado con ALT_MSG_MAP), utilice CHAIN_MSG_MAP_ALT_MEMBER.

Nota

Siempre se inicia un mapa de mensajes con BEGIN_MSG_MAP.Puede declarar entonces asigna alternativos subsiguientes del mensaje con ALT_MSG_MAP.La macro de END_MSG_MAP marca el final del mapa de mensajes.Cada mapa de mensajes debe tener exactamente una instancia de BEGIN_MSG_MAP y de END_MSG_MAP.

Para obtener más información sobre cómo utilizar mapas de mensajes en ATL, vea Mapas de mensajes.

Ejemplo

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 ejemplo muestra lo siguiente:

  • Si un procedimiento de ventana está utilizando el mapa de mensajes predeterminado de los entity_CMyClass y OnPaint no controla un mensaje, el mensaje se dirige al mensaje predeterminado de los entity_m_obj asignado para procesar.

  • Si un procedimiento de ventana utiliza el primer mensaje alternativo asignado en CMyClass, todos los mensajes se dirigen al mapa de mensajes predeterminado de los entity_m_obj.

  • Si un procedimiento de ventana utiliza el mapa en segundo lugar de mensajes alternativo de los entity_CMyClass y OnChar no controla un mensaje, el mensaje se dirige al mapa alternativo especificado del mensaje de m_obj. la clase CMyContainedClass debe haber declarado este mensaje asignado con ALT_MSG_MAP(1).

Requisitos

encabezado: atlwin.h

Vea también

Referencia

CHAIN_MSG_MAP

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

Otros recursos

Message Map Macros (ATL)

Macros de ATL