次の方法で共有


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

例として、MDI アプリケーションの [編集] メニューの [すべてクリア] から送られるコマンド メッセージについて説明します。 このコマンドのハンドラー関数は、アプリケーションのドキュメント クラスのメンバー関数であるとします。 この場合、ユーザーがメニュー項目を選択すると、コマンドは次の手順でハンドラーに届きます。

  1. まず、メイン フレーム ウィンドウがコマンド メッセージを受け取ります。

  2. MDI メイン フレーム ウィンドウは、現在アクティブな MDI 子ウィンドウにコマンドの処理を任せます。

  3. MDI 子フレーム ウィンドウは、標準のルーティングにより、自分のメッセージ マップを調べる前に、ビューにコマンドの処理を任せます。

  4. ビューは、まず自分のメッセージ マップを調べます。ハンドラーが見つからないときは、ビューに関連付けられたドキュメントにコマンドを送ります。

  5. ドキュメントは、メッセージ マップを調べ、ハンドラーを見つけます。 ドキュメントのメンバー関数が呼び出され、転送が終了します。

ドキュメントもハンドラーを持っていないときは、コマンドはドキュメント テンプレートに送られます。 その後、コマンドはビューに戻り、次にフレーム ウィンドウに戻ります。 最後に、フレーム ウィンドウが自分のメッセージ マップをチェックします。 ここにもハンドラーがないときは、コマンドは MDI メイン フレーム ウィンドウへ戻され、次にアプリケーション オブジェクトに送られます。アプリケーション オブジェクトがコマンドの最後の送り先になります。

参照

概念

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