コマンドの振り分け (ルーティング)
コマンドを使用する必要があります。これは、タスクがプロパティ ウィンドウを使用してハンドラー関数に限られますとコマンド間のメッセージ マップのアタッチ。 また、最もコマンド ハンドラーを記述する必要があります。
Windows メッセージは通常はメイン フレーム ウィンドウに送信されますが、コマンド メッセージは、他のオブジェクトにルーティングされます。 フレームワークはコマンドターゲット オブジェクトの標準シーケンス、そのうちの一つは、コマンドをコマンドのハンドラーが必要になりますルーティングします。 各コマンドターゲット オブジェクトは受信メッセージを処理するメッセージ マップをチェックします。
異なるコマンドターゲット クラスは異なる時点で独自のメッセージ マップをチェックします。 通常、クラスの特定のオブジェクトにコマンドをコマンドで、最初の可能性をルーティングします。 これらのオブジェクトはいずれもコマンドを処理しなければ、元のクラスは、独自のメッセージ マップをチェックします。 その後、そのハンドラーを使用できない場合は、コマンドには、さらにコマンドの対象をルーティングすることがあります。 各クラスがこの処理をどのように構成する方法を次の表 標準コマンド ルーティング。 コマンドの対象がコマンドをルーティングする一般に実行が次の操作:
現在アクティブな子のコマンドターゲット オブジェクトです。
それ自体に。
他のコマンドの対象になります。
このルーティングの機能がどのように高いかどうか。 ハンドラーがコマンドに応答すると比べて、ルーティングのコストは高くありません。 ユーザーがユーザー インターフェイス オブジェクトと対話するときにフレームワークによってコマンドが生成されることに注意してください。
標準コマンド ルーティング
この型のオブジェクトがコマンドを受け取るとき。.. |
これは、自身を指定し、他のコマンドターゲットがこの順序でコマンドを処理するように変換する: |
---|---|
MDI フレーム ウィンドウ (CMDIFrameWnd) |
|
ドキュメント フレーム ウィンドウ (CFrameWnd、CMDIChildWnd) |
|
ビュー |
|
Document |
|
ダイアログ ボックス |
|
上の表の記述の第 2 列の一つと番号が他のオブジェクト、文書、最初の列の対応する項目を参照する場合。 たとえば、前後のドキュメント ビューへのコマンド 2 番目の列を読み込むときと、ルーティングするために最初の列の「docs」エントリを参照してください。