この記事ファミリでは、メッセージとコマンドを MFC フレームワークによって処理する方法と、それらをハンドラー関数に接続する方法について説明します。
Windows の従来のプログラムでは、Windows メッセージはウィンドウ プロシージャの大きな switch ステートメントで処理されます。 代わりに、MFC は メッセージ マップ を使用して、ダイレクト メッセージを個別のクラス メンバー関数にマップします。 メッセージ マップは、この目的のために仮想関数よりも効率的であり、アプリケーション、ドキュメント、ビューなど、最も適切な C++ オブジェクトによってメッセージを処理できます。 1 つのメッセージまたはメッセージの範囲、コマンド ID、またはコントロール ID をマップできます。
通常、メニュー、ツール バー ボタン、またはアクセラレータによって生成されるWM_COMMANDメッセージには、メッセージ マップ メカニズムも使用されます。 MFC は、プログラム内のアプリケーション、フレーム ウィンドウ、ビュー、およびアクティブ ドキュメント間のコマンド メッセージの標準 ルーティング を定義します。 必要に応じて、このルーティングをオーバーライドできます。
また、メッセージ マップでは、ユーザー インターフェイス オブジェクト (メニューやツール バー ボタンなど) を更新し、現在のコンテキストに合わせて有効または無効にする方法も提供されます。
Windows のメッセージとメッセージ キューに関する一般的な情報については、「Windows SDK の メッセージとメッセージ キュー 」を参照してください。