CMessageMap クラス
このクラスは、オブジェクトのメッセージ マップに別のオブジェクトにアクセスするようにします。
重要
このクラスおよびメンバーは、Windows のランタイムで実行するアプリケーションで使用することはできません。
class ATL_NO_VTABLE CMessageMap
メンバー
パブリック メソッド
名前 |
説明 |
---|---|
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