次の方法で共有


CToolBar クラス

更新 : 2007 年 11 月

一連のビットマップ ボタンおよびオプションの区切り記号を含むコントロール バーです。

class CToolBar : public CControlBar

解説

ボタンは、プッシュ ボタン、チェック ボックス、オプション ボタンなどと同じように動作します。CToolBar オブジェクトは通常、CFrameWnd クラスまたは CMDIFrameWnd クラスから派生したフレーム ウィンドウ オブジェクトに埋め込まれたメンバとなります。

MFC 4.0 の新しいメンバ関数 CToolBar::GetToolBarCtrl を使って、ツール バーのカスタマイズや機能の追加をサポートする Windows コモン コントロールを利用できます。CToolBar メンバ関数には、Windows コモン コントロールの機能のほとんどが用意されています。さらに GetToolBarCtrl を呼び出すと、Windows 95/98 のツール バーより充実した特性のツール バーも使用できるようになります。GetToolBarCtrl を呼び出すと、CToolBarCtrl オブジェクトへの参照が返されます。Windows コモン コントロールを使ったツール バーのデザインの詳細については、「CToolBarCtrl クラス」を参照してください。コモン コントロール全般の説明は、Windows SDK の「Common Controls」を参照してください。

Visual C++ には、ツール バーを作成するための 2 つの方法が用意されています。リソース エディタを使ってツール バーを作成するときは、次の手順に従ってください。

  1. ツール バー リソースを作成します。

  2. CToolBar オブジェクトを構築します。

  3. Create (または CreateEx) 関数を呼び出して Windows のツール バーを作成し、CToolBar オブジェクトに結び付けます。

  4. LoadToolBar を呼び出してツール バー リソースを読み込みます。

もう 1 つの方法は、次の手順で行います。

  1. CToolBar オブジェクトを構築します。

  2. Create (または CreateEx) 関数を呼び出して Windows のツール バーを作成し、CToolBar オブジェクトに結び付けます。

  3. LoadBitmap を呼び出してツール バーのボタン イメージを持つビットマップを読み込みます。

  4. SetButtons を呼び出してボタンのスタイルを設定し、ビットマップを使って各ボタンにイメージを結び付けます。

ツール バー内のすべてのボタンのイメージは、1 つのビットマップから得られます。ビットマップには、各ボタンごとに 1 つのイメージが必要です。すべてのイメージを同じサイズにする必要があります。既定では、幅 16 ピクセル、高さ 15 ピクセルです。イメージはビットマップ内で横並びである必要があります。

SetButtons 関数には、コントロール ID の配列へのポインタとその配列の要素数を整数値で渡します。この関数は、配列の要素の値を対応するボタンの ID として設定し、ボタンにイメージのインデックスを割り当てます。インデックスは、ビットマップ内のボタンのイメージの位置を示します。配列の要素が値として ID_SEPARATOR を持つときは、イメージのインデックスは割り当てられません。

ビットマップ内のイメージの順序は、通常画面に描画される順序です。ただし、SetButtonInfo 関数を使ってイメージの順序と描画の順序の関係を変更できます。

ツール バー内のボタンは、すべて同じサイズです。『Windows ユーザー インターフェイス デザイン ガイド』(アスキー出版局) で示すように、既定では 24 × 22 ピクセルです。寸法上イメージとボタンの間に少しスペースをとり、イメージの周囲の境界としています。

各ボタンには、1 つのイメージがあります。ボタンのさまざまな状態やスタイル (押された状態、アップ状態、ダウン状態、使用禁止にされている状態、押下状態、不定の状態) は、1 つのイメージから生成されます。ビットマップはカラーでもかまいませんが、黒のイメージと淡色の影を使うと最良の結果を得ることができます。

ツール バーのボタンは、既定ではプッシュ ボタンの動きをします。ただし、チェック ボックスやオプション ボタンのように動作させることもできます。チェック ボックスには、オン状態、オフ状態、不確定な状態の 3 つの状態があります。オプション ボタンは、オン状態、オフ状態の 2 つの状態だけがあります。

配列へのポインタを指定せずに個々のボタンまたは区切り記号のスタイルを設定するには、GetButtonStyle を呼び出してスタイルを取得し、次に SetButtons の代わりに SetButtonStyle を呼び出します。SetButtonStyle は、実行時にボタンのスタイルを変更する場合に便利です。

ボタン上にテキストを表示するには、GetButtonText を呼び出してボタンに表示するテキストを取得し、その後 SetButtonText を呼び出してテキストを設定します。

チェック ボックスを作成するには、TBBS_CHECKBOX スタイルを割り当てるか、ON_UPDATE_COMMAND_UI ハンドラ内で CCmdUI オブジェクトの SetCheck メンバ関数を使います。SetCheck メンバ関数を呼び出すとプッシュ ボタンがチェック ボックスに変わります。SetCheck メンバ関数に引数として 0 を渡したときはオフ状態、1 のときはオン状態、2 のときは不確定な状態になります。

オプション ボタンを作成するには、ON_UPDATE_COMMAND_UI ハンドラから CCmdUI オブジェクトの SetRadio メンバ関数を呼び出します。SetRadio メンバ関数に引数として 0 を渡したときはオフ状態、0 以外の値のときはオン状態になります。オプション ボタンの相互に排他関係を持つグループを用意するためには、グループ内のすべてのボタンに ON_UPDATE_COMMAND_UI ハンドラが必要です。

CToolBar の使い方の詳細については、「MFC ツール バーの実装」および「テクニカル ノート 31: コントロール バー」を参照してください。

必要条件

ヘッダー : afxext.h

参照

処理手順

CTRLBARS サンプル : カスタム コントロール バー

DLGCBR32 サンプル : ダイアログ ボックスへのステータス バーとツール バーの追加

DOCKTOOL サンプル : ドッキング可能ツール バー

参照

CControlBar クラス

階層図

CToolBarCtrl クラス

CControlBar クラス

CToolBar::Create

CToolBar::LoadBitmap

CToolBar::SetButtons

CCmdUI::SetCheck

CCmdUI::SetRadio

その他の技術情報

CToolBar のメンバ