Share via


コマンド ルーティングの図

例として、MDI アプリケーションの [編集] メニューの [すべてクリア] メニュー項目からのコマンド メッセージについて考えてみましょう。 このコマンドのハンドラー関数が、アプリケーションのドキュメント クラスのメンバー関数であるとします。 ユーザーがメニュー項目を選択した後、コマンドがハンドラーに到達する方法を次に示します。

  1. メイン フレーム ウィンドウは、まずコマンド メッセージを受信します。

  2. メイン MDI フレーム ウィンドウでは、現在アクティブな MDI 子ウィンドウにコマンドを処理する機会が与えられます。

  3. MDI 子フレーム ウィンドウの標準のルーティングでは、独自のメッセージ マップを確認する前に、コマンドを使用してそのことを確認できます。

  4. ビューは、まず独自のメッセージ マップを確認し、ハンドラーがないことを確認します。次に、関連付けられているドキュメントにコマンドをルーティングします。

  5. ドキュメントはメッセージ マップを確認し、ハンドラーを見つけます。 このドキュメント メンバー関数が呼び出され、ルーティングが停止します。

ドキュメントにハンドラーがない場合は、次にドキュメント テンプレートにコマンドをルーティングします。 その後、コマンドはビューに戻り、フレーム ウィンドウに戻ります。 最後に、フレーム ウィンドウがメッセージ マップをチェックします。 このチェックが失敗した場合、コマンドはメインの MDI フレーム ウィンドウに送り返され、次にアプリケーション オブジェクト (未処理のコマンドの最終的な宛先) に転送されます。

関連項目

フレームワークがハンドラーを呼び出す方法