BEGIN_MSG_MAP

BEGIN_MSG_MAP ( [クラス]

パラメーター

[クラス]

[入力]メッセージ マップを含んでいるクラスの名前。

解説

既定のメッセージ マップの先頭をマークします。CWindowImpl::WindowProcは、既定のメッセージ マップをウィンドウに送信されるメッセージを処理を使用します。メッセージを適切なハンドラー関数または別のメッセージ マップにメッセージ マップを指示します。

次のマクロは、メッセージをハンドラー関数にマップします。[クラス]では、この関数を定義する必要があります。

マクロ 説明
割り当てます Windows メッセージをハンドラー関数にマップします。
MESSAGE_RANGE_HANDLER マップは、連続した範囲の Windows メッセージをハンドラー関数に。
ただし 通知コードと、メニュー項目、コントロール、またはアクセラレータの id に基づいて、ハンドラー関数に、 WM_COMMANDメッセージをマップします。
割り当てます メニュー項目、コントロール、またはアクセラレータの id に基づいて、ハンドラー関数に、 WM_COMMANDメッセージをマップします。
割り当てます WM_COMMANDメッセージを通知コードに基づいて、ハンドラー関数にマップします。
ただし 連続した範囲のWM_COMMANDメッセージをメニュー項目、コントロール、またはアクセラレータの id に基づいて、ハンドラー関数にマップします。
ただし 通知コードとコントロール id に基づいて、ハンドラー関数に、 WM_NOTIFYメッセージをマップします。
割り当てます コントロール id に基づいて、ハンドラー関数に、 WM_NOTIFYメッセージをマップします。
割り当てます WM_NOTIFYメッセージを通知コードに基づいて、ハンドラー関数にマップします。
ただし WM_NOTIFYメッセージの連続した範囲のコントロール id に基づいて、ハンドラー関数にマップします。

次のマクロは、メッセージ別のメッセージ マップに直接します。このプロセスは「チェーン」と呼ばれます

マクロ 説明
CHAIN_MSG_MAP 基本クラスの既定のメッセージ マップにチェイン。
CHAIN_MSG_MAP_MEMBER クラスのデータ メンバーの既定のメッセージ マップにチェイン。
CHAIN_MSG_MAP_ALT 基本クラスの代替メッセージ マップにチェイン。
CHAIN_MSG_MAP_ALT_MEMBER クラスのデータ メンバーの代替メッセージ マップにチェイン。
CHAIN_MSG_MAP_DYNAMIC 別のクラスは、実行時に既定のメッセージ マップにチェイン。

cMyWindow クラス:.{パブリック。特価;...BEGIN_MSG_MAP(CMyWindow)割り当てます (WM_PAINT、OnPaint)割り当てます (WM_SETFOCUS、OnSetFocus)CHAIN_MSG_MAP(CMyBaseWindow)END_MSG_MAP()LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ ... }LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ ... }}

場合、 CMyWindow オブジェクトを受け取る、 WM_PAINT メッセージ、メッセージに送信されます CMyWindow::OnPaint の実際の処理。場合 OnPaint 、メッセージが必要、メッセージは処理を示し、既定のメッセージ マップに指示します。CMyBaseWindow

既定のメッセージ マップに加え、 ALT_MSG_MAPを代替メッセージ マップを定義できます。常にメッセージ マップをBEGIN_MSG_MAPを開始します。代替メッセージ マップを宣言することすることができます。既定のメッセージ マップと 1 つの代替メッセージ マップは、それぞれ 1 つのハンドラー関数を含む、次の例を示します:

BEGIN_MSG_MAP(CMyClass)特価;割り当てます (WM_PAINT、OnPaint)ALT_MSG_MAP(&1)割り当てます (WM_SETFOCUS、OnSetFocus)END_MSG_MAP()

2 つの代替メッセージ マップを次に示します。既定のメッセージ マップは空です。

BEGIN_MSG_MAP(CMyClass)ALT_MSG_MAP(&1)特価;割り当てます (WM_PAINT、OnPaint)割り当てます (WM_SETFOCUS、OnSetFocus)ALT_MSG_MAP(2)割り当てます (WM_CREATE、OnCreate)END_MSG_MAP()

END_MSG_MAPマクロは、メッセージ マップの末尾をマークします。BEGIN_MSG_MAPEND_MSG_MAPの 1 つのインスタンスが常にあることに注意してください。

ATL でのメッセージ マップの使い方の詳細については、メッセージ マップ「ATL ウィンドウ クラス」の記事で参照してください

ATL マクロとグローバル関数

参照してください。

CMessageMapCDynamicChain

Index