コマンド ルーティングの図
例として、MDI アプリケーションの [編集] メニューの [すべてクリア] メニュー項目からコマンド メッセージを確認します。 このコマンドのハンドラー関数が、アプリケーションのドキュメント クラスのメンバー関数である場合を仮定します。 ユーザーがメニュー項目を選択した後、そのコマンドがハンドラーに到達する方法を次に示します。
メイン フレーム ウィンドウは、最初にコマンド メッセージを受信します。
メインの MDI フレーム ウィンドウでは、現在アクティブな MDI 子ウィンドウでコマンドを処理できます。
MDI 子フレーム ウィンドウの標準ルーティングでは、独自のメッセージ マップを確認する前に、コマンドでビューを表示できます。
ビューでは、最初に独自のメッセージ マップがチェックされ、ハンドラーが見つからなき、次にコマンドが関連付けられているドキュメントにルーティングされます。
ドキュメントはメッセージ マップをチェックし、ハンドラーを検索します。 このドキュメント メンバー関数が呼び出され、ルーティングが停止します。
ドキュメントにハンドラーが含めなかった場合は、次にコマンドをドキュメント テンプレートにルーティングします。 その後、コマンドはビューに戻り、フレーム ウィンドウに戻ります。 最後に、フレーム ウィンドウでメッセージ マップが確認されます。 そのチェックも失敗した場合、コマンドはメインの MDI フレーム ウィンドウに戻り、未処理のコマンドの最終的な宛先であるアプリケーション オブジェクトに — ルーティングされます。