CMessageMap选件类

此选件类允许对象的消息映射是访问由另一个对象。

重要说明重要事项

此选件类及其成员不能在Windows运行时执行的应用程序。

class ATL_NO_VTABLE CMessageMap

成员

82kc1c2x.collapse_all(zh-cn,VS.110).gif公共方法

名称

描述

CMessageMap::ProcessWindowMessage

访问 CMessageMap的消息映射派生类。

备注

CMessageMap 是允许对象的消息映射被其他对象获取的抽象基类。为了对象可以显示其消息映射,其选件类必须从 CMessageMap派生。

ATL使用 CMessageMap 支持包含窗口和动态消息映射绑定。例如,包含 CContainedWindow 对象的任何选件类必须从 CMessageMap派生。下面的代码从 SUBEDIT 示例中采用。通过 CComControl,CAtlEdit 选件类从 CMessageMap自动派生。

class ATL_NO_VTABLE CAtlEdit :
   OtherInheritedClasses
   public CComControl<CAtlEdit>
   // CComControl derives from CWindowImpl, which derives from CMessageMap
{
public:
   // Declare a contained window data member
   CContainedWindow m_ctlEdit;

   // Initialize the contained window:
   // 1. Pass "Edit" to specify that the contained 
   //    window should be based on the standard 
   //    Windows Edit box
   // 2. Pass 'this' pointer to specify that CAtlEdit 
   //    contains the message map to be used for the 
   //    contained window's message processing
   // 3. Pass the identifier of the message map. '1'
   //    identifies the alternate message map declared
   //    with ALT_MSG_MAP(1)
   CAtlEdit()
      : m_ctlEdit(_T("Edit"), this, 1)
   {
      m_bWindowOnly = TRUE;
   }

// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
   CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()

由于包含窗口,m_EditCtrl,在包含的选件类将使用消息映射,CAtlEdit 从 CMessageMap派生。

有关消息映射的更多信息,请参见 消息映射 在该文章“ATL窗口选件类上”。

要求

Header: atlwin.h

请参见

参考

CDynamicChain选件类

BEGIN_MSG_MAP

ALT_MSG_MAP

其他资源

ATL选件类概述