コマンドのルーティングを実行するために、各コマンド ターゲットは、シーケンス内の次のコマンド ターゲットの OnCmdMsg
メンバー関数を呼び出します。 コマンド ターゲットでは、 OnCmdMsg
を使用してコマンドを処理できるかどうかを判断し、処理できない場合は別のコマンド ターゲットにルーティングします。
各コマンド ターゲット クラスは、 OnCmdMsg
メンバー関数をオーバーライドできます。 オーバーライドにより、各クラスはコマンドを特定の次のターゲットにルーティングできます。 たとえば、フレーム ウィンドウでは、標準コマンド ルートの表に示すように、コマンドは常に現在の子ウィンドウまたはビューに ルーティングされます。
OnCmdMsg
の既定のCCmdTarget
実装では、標準メッセージが検索されるのと同じ方法で、コマンド ターゲット クラスのメッセージ マップを使用して、受信した各コマンド メッセージのハンドラー関数を検索します。 一致が見つかると、ハンドラーが呼び出されます。 メッセージ マップの検索については、「フレームワークによる メッセージ マップの検索方法」を参照してください。