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_MAPとEND_MSG_MAPの 1 つのインスタンスが常にあることに注意してください。
ATL でのメッセージ マップの使い方の詳細については、メッセージ マップ「ATL ウィンドウ クラス」の記事で参照してください
参照してください。