Rebar コントロールとバンド
Rebar コントロールの主な目的は、子ウィンドウ、コモン ダイアログ コントロール、メニュー、ツール バーなどに使用されるコンテナーとしての働きです。 このコンテナーとしての働きは、"バンド" という概念によって支えられています。それぞれの Rebar バンドには、グリッパー バー、ビットマップ、テキスト ラベル、子ウィンドウを自由に組み合わせて配置することができます。
CReBarCtrl
クラスには、特定の Rebar バンドの情報を取得したり操作したりするためのメンバー関数が多数あります。
GetBandCount。現在 Rebar コントロールに存在するバンドの数を取得します。
GetBandInfo。指定したバンドからの情報で REBARBANDINFO 構造体を初期化します。 対応するメンバー関数として SetBandInfo があります。
GetRect。指定されたバンドの四角形領域を取得します。
GetRowCount。Rebar コントロールのバンドの行数を取得します。
IDToIndex。指定されたバンドのインデックスを取得します。
GetBandBorders。バンドの境界線を取得します。
操作に加え、特定の Rebar バンドに作用するメンバー関数もいくつか用意されています。
InsertBand と DeleteBand は、Rebar バンドを追加または削除するものです。 MinimizeBand と MaximizeBand は、特定の Rebar バンドの現在のサイズに作用します。 MoveBand では、特定の Rebar バンドのインデックスを変更します。 ShowBand は、Rebar バンドをユーザーに対して表示したり非表示にしたりします。
以下の例は、既存の Rebar コントロール (m_wndReBar) にツール バー バンド (m_wndToolBar) を追加するデモです。 バンドは、rbi
構造体を初期化した後、InsertBand
メンバー関数を呼び出すことで記述します。
//load bitmap for toolbar background
m_RebarBitmap.LoadBitmap(IDB_BITMAP1);
//create a toolbar band
m_Toolbar1.Create(this, TBSTYLE_TRANSPARENT | TBSTYLE_FLAT);
m_Toolbar1.LoadToolBar(IDR_MAINFRAME);
REBARBANDINFO rbi = { 0 };
rbi.cbSize = sizeof(REBARBANDINFO);
rbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD | RBBIM_CHILDSIZE |
RBBIM_STYLE | RBBIM_TEXT;
rbi.fStyle = RBBS_GRIPPERALWAYS;
rbi.cxMinChild = 300;
rbi.cyMinChild = 50;
rbi.lpText = _T("Band #1");
rbi.cch = 7;
rbi.cx = 300;
rbi.hbmBack = (HBITMAP)m_RebarBitmap;
rbi.hwndChild = (HWND)m_Toolbar1;
m_Rebar.GetReBarCtrl().InsertBand(0, &rbi);