次の方法で共有


CMessageMap クラス

このクラスを使用すると、オブジェクトのメッセージ マップに別のオブジェクトからアクセスできます。

重要

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

構文

class ATL_NO_VTABLE CMessageMap

メンバー

パブリック メソッド

名前 説明
CMessageMap::ProcessWindowMessage CMessageMap 派生クラスのメッセージ マップにアクセスします。

解説

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

ATL は、CMessageMap を使用して、格納されるウィンドウと動的なメッセージ マップ チェーンをサポートします。 たとえば、CContainedWindow オブジェクトを含むクラスはすべて、CMessageMap から派生する必要があります。 次に示すコードは、SUBEDIT サンプルのものです。 CAtlEdit クラスは、CComControl を通じて 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 ウィンドウ クラス" のメッセージ マップに関するページを参照してください。

要件

ヘッダー: atlwin.h

CMessageMap::ProcessWindowMessage

CMessageMap 派生クラスの dwMsgMapID によって識別されるメッセージ マップにアクセスします。

virtual BOOL ProcessWindowMessage(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT& lResult,
    DWORD dwMsgMapID) = 0;

パラメーター

hWnd
[入力] メッセージを受け取るウィンドウへのハンドル。

uMsg
[入力] ウィンドウに送信されたメッセージ。

wParam
[入力] メッセージ固有の追加情報。

lParam
[入力] メッセージ固有の追加情報。

lResult
[出力] メッセージ処理の結果。

dwMsgMapID
[入力] メッセージを処理するメッセージ マップの識別子。 BEGIN_MSG_MAP で宣言されている既定のメッセージ マップは、0 で識別されます。 ALT_MSG_MAP(msgMapID) で宣言された代替メッセージ マップは、msgMapID によって識別されます。

戻り値

メッセージが完全に処理される場合は TRUE。それ以外の場合は FALSE。

解説

CContainedWindow オブジェクトまたはメッセージ マップに動的にチェーンするオブジェクトのウィンドウ プロシージャによって呼び出されます。

関連項目

CDynamicChain クラス
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
クラスの概要