メッセージ マップ (MFC)
リファレンスのこのセクションでは、すべてのメッセージ マップ マクロとすべての CWnd メッセージ マップ エントリを、対応するメンバー関数のプロトタイプと共に示します。
分類 |
説明 |
---|---|
ユーザーのメニュー選択またはメニューのアクセス キーによって生成される WM_COMMAND メッセージを処理します。 |
|
子ウィンドウからの通知メッセージを処理します。 |
|
WM_PAINT のような WM_ メッセージを処理します。 |
|
ユーザー定義メッセージを処理します。 |
(このリファレンスで使用される用語と規則の詳細については、"How to Use the Message Map Cross-Reference (メッセージ マップ クロス リファレンスの使い方)" を参照してください)。
Windows はメッセージ指向オペレーティング システムであることが理由で、Windows 環境向けのプログラミングの大部分にはメッセージ処理が関係しています。 キーストロークやマウス クリックなどのイベントが発生するたびに、そのイベントを処理する必要があるアプリケーションに対してメッセージが送信されます。
Microsoft Foundation Class ライブラリには、メッセージベースのプログラミングに最適化されたプログラミング モデルが用意されています。 このモデルでは、特定のクラスに対してどの関数がさまざまなメッセージを処理するかを指定した "メッセージ マップ" を使用します。 メッセージ マップには、どの関数がどのメッセージを処理するかを指定する 1 つ以上のマクロが含まれています。 たとえば、ON_COMMAND マクロを含むメッセージ マップは、次のように記述されることがあります。
BEGIN_MESSAGE_MAP(CMyDoc, CDocument)
ON_COMMAND(ID_MYCMD, &CMyDoc::OnMyCommand)
END_MESSAGE_MAP()
ON_COMMAND マクロは、メニュー、ボタン、およびアクセラレータ キーによって生成されるコマンド メッセージを処理するために使用します。 "Macros (マクロ)" は、次のものをマップする目的で使用できます。
Windows メッセージ
コントロールの通知
ユーザー定義メッセージ
コマンド メッセージ
登録済みのユーザー定義メッセージ
ユーザー インターフェイス更新メッセージ
メッセージの範囲
コマンド
ハンドラー メッセージの更新
コントロールの通知
メッセージ マップ マクロは重要なマクロですが、通常は直接記述する必要はありません。 これは、開発者がメッセージとメッセージ処理関数を関連付けると、[プロパティ] ウィンドウでメッセージ マップ エントリがソース ファイル内に自動的に作成されるためです。 メッセージ マップ エントリは、[プロパティ] ウィンドウでいつでも編集および追加できます。
注意
[プロパティ] ウィンドウでは、メッセージ マップの範囲をサポートしていません。これらのメッセージ マップ エントリは、独自に作成する必要があります。
ただし、メッセージ マップは、Microsoft Foundation Class ライブラリの重要な部分です。 これらが何を実行するかを理解する必要があり、そのためのドキュメントが用意されています。