CHAIN_MSG_MAP_MEMBER

定义消息映射中的项。

CHAIN_MSG_MAP_MEMBER( theChainMember )

参数

  • theChainMember
    [in]包含消息映射中的数据成员的名称。

备注

CHAIN_MSG_MAP_MEMBER 处理消息指向数据成员的默认消息映射(声明 BEGIN_MSG_MAP)。 若要处理消息到数据成员的替换消息映射以(声明 ALT_MSG_MAP),使用 CHAIN_MSG_MAP_ALT_MEMBER

备注

BEGIN_MSG_MAP始终启动消息映射。您可以声明与 ALT_MSG_MAP的后续替换消息映射。END_MSG_MAP 宏指示消息映射的结尾。每个消息映射必须正好包含 BEGIN_MSG_MAPEND_MSG_MAP一个实例。

有关使用的更多信息消息在ATL映射,请参见 消息映射

示例

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

此示例阐释下列内容:

  • 如果窗口过程使用CMyClass的默认消息映射,然后 OnPaint 不处理消息,消息处理 m_obj的默认处理的消息映射。

  • 如果窗口过程在 CMyClass使用第一个替换消息映射,所有消息处理m_obj的默认消息映射。

  • 如果窗口过程使用CMyClass的第二替换消息映射,然后 OnChar 不处理消息,消息处理 m_obj指定的替换消息映射。 选件类 CMyContainedClass 必须声明与 ALT_MSG_MAP(1)的此消息映射。

要求

Header: atlwin.h

请参见

参考

CHAIN_MSG_MAP

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

其他资源

消息映射宏(ATL)

ATL 宏