共用方式為


CMessageMap 類別

這個類別允許物件的訊息對應會存取由其他物件。

重要

這個類別和其成員不能用於 Windows 執行階段執行的應用程式。

class ATL_NO_VTABLE CMessageMap

Members

82kc1c2x.collapse_all(zh-tw,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,包含在中的類別會使用訊息對應, CAtlEditCMessageMap從衍生。

如需訊息對應的詳細資訊,請參閱 訊息對應 本文「ATL 視窗類別上」。

需求

Header: atlwin.h

請參閱

參考

CDynamicChain 類別

BEGIN_MSG_MAP

ALT_MSG_MAP

其他資源

ATL 類別概觀