CMessageMap クラス

このクラスは、オブジェクトのメッセージ マップに別のオブジェクトにアクセスするようにします。

重要

このクラスおよびメンバーは、Windows のランタイムで実行するアプリケーションで使用することはできません。

class ATL_NO_VTABLE CMessageMap

メンバー

パブリック メソッド

名前

説明

CMessageMap::ProcessWindowMessage

CMessageMapのメッセージ マップ派生クラスにアクセスします。

解説

CMessageMap は、オブジェクトのメッセージ マップに別のオブジェクトにアクセスできるようにする抽象基本クラスです。 メッセージ マップを公開するオブジェクトのクラスは CMessageMapから派生する必要があります。

ATL を使用 CMessageMap 含まれているウィンドウをサポートすると動的メッセージはチェーンをマップします。 たとえば、CMessageMapから CContainedWindow のオブジェクトを含むを取得する必要があります。並べ替えます。 次のコードは 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 クラスの概要