メッセージ マップの所在
更新 : 2007 年 11 月
アプリケーション ウィザードを使ってスケルトン アプリケーションを新規作成すると、生成されたコマンド ターゲット クラスのメッセージ マップが自動的に作られます。つまり、独自に派生したアプリケーション、ドキュメント、ビュー、フレーム ウィンドウの各クラスに対してメッセージ マップが作成されます。一部のメッセージと定義済みコマンドについては、メッセージ マップのエントリもアプリケーション ウィザードによって自動的に作成されます。プログラマがハンドラ名を追加できるように、プレースホルダだけが作成される場合もあります。
メッセージ マップは、クラスの .CPP ファイルにあります。アプリケーション ウィザードで作成した基本のメッセージ マップには、各クラスで処理するメッセージやコマンドのエントリを [プロパティ] ウィンドウで追加できます。一般的なメッセージ マップにエントリを追加すると、次のようになります。
BEGIN_MESSAGE_MAP(CMyView, CFormView)
ON_WM_MOUSEACTIVATE()
ON_COMMAND(ID_EDIT_CUT, &CMyView::OnEditCut)
ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, &CMyView::OnUpdateEditCut)
ON_BN_CLICKED(IDC_MYBUTTON, &CMyView::OnBnClickedMybutton)
ON_WM_CREATE()
END_MESSAGE_MAP()
メッセージ マップはマクロの集合です。メッセージ マップは、BEGIN_MESSAGE_MAP と END_MESSAGE_MAP という 2 つのマクロで囲まれます。その他のマクロ (ON_COMMAND など) でメッセージ マップの内容を定義します。
メモ : |
---|
メッセージ マップ マクロの末尾にはセミコロンを付けません。 |
クラス追加ウィザードを使って新しいクラスを作成すると、そのクラスのメッセージ マップが自動的に生成されます。ソース コード エディタを使うと、メッセージ マップを手作業で作成できます。