次の方法で共有


メニュー、コントロール バー、アクセラレータの管理

フレーム ウィンドウは、メニュー、ツール バー ボタン、ステータス バー、アクセラレータなど、ユーザー インターフェイス オブジェクトの更新を管理します。 また、MDI アプリケーションでのメニュー バーの共有も管理します。

メニューの管理

フレーム ウィンドウは、「User-Interface オブジェクトを更新する方法」で説明されているON_UPDATE_COMMAND_UIメカニズムを使用して、ユーザー インターフェイス項目 を更新することに関与します。 ツール バーやその他のコントロール バーのボタンは、アイドル ループ中に更新されます。 メニュー バーのドロップダウン メニューのメニュー項目は、メニューがドロップダウンする直前に更新されます。

MDI アプリケーションの場合、MDI フレーム ウィンドウはメニュー バーとキャプションを管理します。 MDI フレーム ウィンドウには、アクティブな MDI 子ウィンドウがない場合にメニュー バーとして使用される既定のメニューが 1 つあります。 アクティブな子がある場合、MDI フレーム ウィンドウのメニュー バーは、アクティブな MDI 子ウィンドウのメニューによって引き継がれる。 MDI アプリケーションがグラフやワークシート ドキュメントなどの複数の種類のドキュメントをサポートしている場合、各種類はメニュー バーに独自のメニューを配置し、メイン フレーム ウィンドウのキャプションを変更します。

CMDIFrameWnd は、MDI アプリケーション用に表示される [ウィンドウ] メニューの標準コマンドの既定の実装を提供します。 特に、[新しいウィンドウ] コマンド (ID_WINDOW_NEW) を実装して、新しいフレーム ウィンドウを作成し、現在のドキュメントに表示します。 高度なカスタマイズが必要な場合にのみ、これらの実装をオーバーライドする必要があります。

同じドキュメントの種類の複数の MDI 子ウィンドウでメニュー リソースを共有します。 複数の MDI 子ウィンドウが同じドキュメント テンプレートによって作成された場合、それらはすべて同じメニュー リソースを使用でき、Windows のシステム リソースに保存されます。

ステータス バーの管理

また、フレーム ウィンドウは、ステータス バーをクライアント領域内に配置し、ステータス バーのインジケーターを管理します。 「ステータス バーに コマンド情報を表示する方法」の説明に従って、フレーム ウィンドウは必要に応じてステータス バーのメッセージ領域をクリアして更新し、ユーザーがメニュー項目またはツール バー ボタンを選択するとプロンプト文字列を表示します。

アクセラレータの管理

各フレーム ウィンドウは、キーボードのアクセラレータ変換を自動的に行うオプションのアクセラレータ テーブルを保持します。 このメカニズムにより、メニュー コマンドを呼び出すアクセラレータ キー (ショートカット キーとも呼ばれます) を簡単に定義できます。

こちらも参照ください

フレーム ウィンドウの使用