ユーザーがマウスでメニューまたはコントロール バー ボタンを選択してアプリケーションを操作すると、アプリケーションは影響を受けるユーザー インターフェイス オブジェクトから適切なコマンド ターゲット オブジェクトにメッセージを送信します。
CCmdTarget
から派生したコマンド ターゲット クラスには、CWinApp、CWnd、CDocTemplate、CDocument、CView、およびそこから派生したクラスが含まれます。 フレームワークでは、アプリケーションで現在アクティブな最も適切なオブジェクトでコマンドを処理できるように、コマンドの自動ルーティングがサポートされています。
クラス CCmdUI
のオブジェクトは、コマンド ターゲットの更新コマンド UI (ON_UPDATE_COMMAND_UI) ハンドラーに渡され、特定のコマンドのユーザー インターフェイスの状態を更新できます (たとえば、メニュー項目のチェックまたは削除)。 UI オブジェクトの状態を更新するには、 CCmdUI
オブジェクトのメンバー関数を呼び出します。 このプロセスは、特定のコマンドに関連付けられている UI オブジェクトがメニュー項目であるかボタンであるか、またはその両方であるかに関係なく同じです。
CCmdTarget
メッセージを受信して応答できるオブジェクトのすべてのクラスの基底クラスとして機能します。
CCmdUI
メニュー項目やコントロール バー ボタンなどのユーザー インターフェイス オブジェクトを更新するためのプログラムによるインターフェイスを提供します。 コマンド ターゲット オブジェクトは、このオブジェクトを使用してユーザー インターフェイス オブジェクトの有効化、無効化、チェック、クリアを行います。