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