次の方法で共有


更新ハンドラーが呼び出されるタイミング

ユーザーのクリックを WM_INITMENUPOPUP のメッセージを生成するファイル] メニューのマウスとします。フレームワークの更新機能はまとめて、メニューがドロップしたがって、ユーザーが表示できる前に [ファイル] メニューのすべての項目を更新します。

これを行うには、フレームワークは標準のコマンド ルーティングに沿ってポップアップ メニューのメニュー項目の更新コマンドのパスを指定します。ルーティング コマンドのターゲットに更新コマンド (フォーム ON_UPDATE_COMMAND_UI)の適切なメッセージマップ エントリに一致すること、および 「更新」ハンドラー関数を呼び出すことによって、メニュー項目を更新する機会が与えられます。したがって、 6 種類のメニュー項目を持つメニューの場合、 6 回の更新コマンドが送信されます。更新ハンドラーがメニュー項目のコマンド ID に存在する場合を更新することを呼び出します。そうでない場合、フレームワークは必要に応じてそのコマンド ID のハンドラーの手順をチェックし、メニュー項目を有効または無効にします。

フレームワークがコマンド ルーティングの間に ON_UPDATE_COMMAND_UI エントリを検索、どこかに ON_COMMAND エントリが同じコマンド ID に応じて自動的にユーザーインターフェイス オブジェクトを有効にしますそれ以外の場合はユーザーインターフェイス オブジェクトを無効にします。したがって、ユーザーインターフェイス オブジェクトが有効になっていることを確認するために、オブジェクトが生成する指定します。または、の更新ハンドラーを指定してコマンドのハンドラーが。トピック ユーザーインターフェイス オブジェクトとコマンド IDの図を参照してください。

ユーザーインターフェイス オブジェクトの既定の無効化を無効にできます。詳細については、 " MFC リファレンスのクラス CFrameWndm_bAutoMenuEnable のメンバーを参照してください。

メニューの初期化は、アプリケーションが WM_INITMENUPOPUP のメッセージを受信したときに発生するフレームワークで自動です。アイドル ループでは、フレームワークはボタンの更新ハンドラーをメニューにする場合と同じようにコマンド ルーティングを検索します。

参照

概念

ユーザー インターフェイス オブジェクトの更新方法