コントロール バー
更新 : 2007 年 11 月
"コントロール バー" は、ツール バー、ステータス バー、およびダイアログ バーの総称です。MFC の CToolBar、CStatusBar、CDialogBar、COleResizeBar、CReBar の各クラスは、それらに共通の機能を実装する CControlBar クラスから派生します。
コントロール バーは、コントロールの列を表示するウィンドウであり、オプションの選択、コマンドの実行、プログラム情報の取得を行うことができます。コントロール バーの種類には、ツール バー、ダイアログ バー、ステータス バーなどがあります。
ツール バーは CToolBar クラスに属します。
ステータス バーは CStatusBar クラスに属します。
ダイアログ バーは CDialogBar クラスに属します。
Rebar は CReBar クラスに属します。
重要 : |
---|
MFC Version 4.0 以前のバージョンでは、ツール バー、ステータス バー、およびツール ヒントは、MFC 独自の機能として実装されていました。MFC Version 4.0 以降では、comctl32.dll のシステム機能として実装されています。MFC Version 6.0 では、comctl32.dll の拡張機能である CReBar が追加されました。 |
ここでは、各種のコントロール バーについて簡単に紹介します。詳細については、以下の説明内に示されたリンク先を参照してください。
コントロール バー
コントロール バーを利用すると、1 回の操作ですばやくコマンドを実行できるため、プログラムを簡単に使用できます。CControlBar クラスには、すべてのツール バー、ステータス バー、およびダイアログ バーに共通の機能が定義されています。CControlBar クラスには、コントロール バーを親フレーム ウィンドウ内に配置する機能も定義されています。通常、コントロール バーは親フレーム ウィンドウの子ウィンドウなので、フレーム ウィンドウのクライアント ビューまたは MDI クライアントとは "兄弟" の関係にあります。コントロール バー オブジェクトは、親ウィンドウのクライアント領域に関する情報を基に、自身を配置します。次に、クライアント ビューまたは MDI クライアント ウィンドウが残りの領域に収まるように、親の残りのクライアント ウィンドウ領域が調整されます。
メモ : |
---|
コントロール バーのボタンに COMMAND ハンドラまたは UPDATE_COMMAND_UI ハンドラがない場合、フレームワークは自動的にボタンを無効にします。 |
ツール バー
ツール バーは、コマンドを実行するビットマップ ボタンが一列に配置されたコントロール バーです。ツール バー ボタンをクリックすることによって、メニュー項目を選択したときと同じ操作を実行できます。メニュー項目がツール バー ボタンと同じ ID の場合、そのメニュー項目に対応付けられているのと同じハンドラが呼び出されます。ツール バーのボタンには、プッシュ ボタン、オプション ボタン、またはチェック ボックスの外観と動作を設定できます。ツール バーは通常、フレーム ウィンドウの上部に並べられますが、MFC ツール バーは親ウィンドウの任意の辺にドッキングしたり、独立したミニ フレーム ウィンドウとしてフローティングしたりできます。また、ツール バーをフローティングして、サイズを変更したり、マウスでドラッグすることもできます。さらに、マウス ポインタがツール バーのボタン上に移動したときに、ツール ヒントを表示することもできます。ツール ヒントは、ボタンの用途の簡単な説明を表示する小さなポップアップ ウィンドウです。
メモ : |
---|
MFC Version 4.0 以降、CToolBar クラスは Windows ツール バーのコモン コントロールを使用します。CToolBar クラスには、CToolBarCtrl クラスが含まれています。ただし、以前のバージョンのツール バーもサポートされています。詳細については、「MFC ツール バーの実装」を参照してください。 |
ステータス バー
ステータス バーは、テキスト出力ペイン、つまり "インジケータ" を表示するコントロール バーです。通常、出力ペインはメッセージ行およびステータス インジケータとして使用されます。メッセージ行の例としては、コマンド ヘルプ メッセージがあります。コマンド ヘルプ メッセージは、MFC AppWizard で作成された既定のステータス バーの左端ペインに表示され、選択されたメニューまたはツール バー コマンドの簡単な説明を表示します。ステータス インジケータの例としては、ScrollLock や NumLock などのキーの状態表示があります。ステータス バーは通常、フレーム ウィンドウの下端に配置されます。詳細については、「CStatusBar」クラスおよび「CStatusBarCtrl」クラスを参照してください。
ダイアログ バー
ダイアログ バーは、ダイアログ テンプレート リソースから作成されるコントロール バーで、モードレス ダイアログ ボックスの機能を備えています。ダイアログ バーには、各種の Windows コントロール、カスタム コントロール、または ActiveX コントロールを配置できます。ダイアログ ボックスの場合と同様に、Tab キーでコントロール間を移動できます。ダイアログ バーは、フレーム ウィンドウの上下左右いずれの辺にも配置できます。また、独立したフレーム ウィンドウとしてフローティング状態にすることもできます。詳細については、「CDialogBar」クラスを参照してください。
Rebar
Rebar は、rebar コントロールのドッキング、レイアウト、状態、および永続性の情報を提供するコントロール バーです。Rebar オブジェクトには、さまざまな子ウィンドウを含めることができます。子ウィンドウとなるのは、通常、エディット ボックス、ツール バー、リスト ボックスなどのコントロール類です。Rebar オブジェクトでは、指定されたビットマップ上にその子ウィンドウを表示できます。サイズは自動的に変更されるか、グリップ バーをクリックまたはドラッグして手動で変更します。詳細については、「CReBar」クラスを参照してください。