メッセージ マップ (MFC)

リファレンスのこのセクションでは、すべての メッセージ マッピング マクロ とすべての CWnd メッセージ マップ エントリを、対応するメンバー関数のプロトタイプと共に一覧表示します。

カテゴリ 説明
ON_COMMAND メッセージ ハンドラー ユーザー メニューの選択またはメニュー アクセス キーによって生成されたメッセージを処理 WM_COMMAND します。
子ウィンドウの通知メッセージ ハンドラー 子ウィンドウからの通知メッセージを処理します。
WM_ メッセージ ハンドラー などのWM_PAINTメッセージを処理WM_します。
ユーザー定義メッセージ ハンドラー ユーザー定義メッセージを処理します。

(このリファレンスで使用される用語と規則の説明については、 メッセージ マップの相互参照を使用する方法。

Windows はメッセージ指向オペレーティング システムであることが理由で、Windows 環境向けのプログラミングの大部分にはメッセージ処理が関係しています。 キーストロークやマウス クリックなどのイベントが発生するたびに、そのイベントを処理する必要があるアプリケーションに対してメッセージが送信されます。

Microsoft Foundation Class ライブラリには、メッセージベースのプログラミングに最適化されたプログラミング モデルが用意されています。 このモデルでは、特定のクラスに対してどの関数がさまざまなメッセージを処理するかを指定した "メッセージ マップ" を使用します。 メッセージ マップには、どの関数がどのメッセージを処理するかを指定する 1 つ以上のマクロが含まれています。 たとえば、ON_COMMAND マクロを含むメッセージ マップは、次のように記述されることがあります。

BEGIN_MESSAGE_MAP(CMyDoc, CDocument)
   ON_COMMAND(ID_MYCMD, &CMyDoc::OnMyCommand)
END_MESSAGE_MAP()

ON_COMMAND マクロは、メニュー、ボタン、およびアクセラレータ キーによって生成されるコマンド メッセージを処理するために使用します。 マクロ は、次のマップに使用できます。

Windows メッセージ

  • コントロールの通知

  • ユーザー定義メッセージ

コマンド メッセージ

  • 登録済みのユーザー定義メッセージ

  • ユーザー インターフェイス更新メッセージ

メッセージの範囲

  • コマンド

  • ハンドラー メッセージの更新

  • コントロールの通知

メッセージ マップ マクロは重要なマクロですが、通常は直接記述する必要はありません。 これは、クラス ウィザード使用してメッセージ処理関数をメッセージに関連付けると、ソース ファイルにメッセージ マップ エントリが自動的に作成されるためです。 メッセージ マップ エントリを編集または追加する場合は、いつでもクラス ウィザードを使用できます。

Note

クラス ウィザードでは、メッセージ マップ範囲はサポートされていません。 これらのメッセージ マップ エントリは、独自に作成する必要があります。

ただし、メッセージ マップは、Microsoft Foundation Class ライブラリの重要な部分です。 これらが何を実行するかを理解する必要があり、そのためのドキュメントが用意されています。

関連項目

構造体、スタイル、コールバック関数とメッセージ マップ