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
は格納するクラスのメッセージ マップを使用するため、CAtlEdit
は CMessageMap
から派生します。
メッセージ マップの詳細については、"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)
クラスの概要