Rebar コントロールとバンド

Rebar コントロールの主な目的は、子ウィンドウ、コモン ダイアログ コントロール、メニュー、ツール バーなどに使用されるコンテナーとしての働きです。 このコンテナーとしての働きは、"バンド" という概念によって支えられています。それぞれの Rebar バンドには、グリッパー バー、ビットマップ、テキスト ラベル、子ウィンドウを自由に組み合わせて配置することができます。

CReBarCtrl クラスには、特定の Rebar バンドの情報を取得したり操作したりするためのメンバー関数が多数あります。

  • GetBandCount。現在 Rebar コントロールに存在するバンドの数を取得します。

  • GetBandInfo。指定したバンドからの情報で REBARBANDINFO 構造体を初期化します。 対応するメンバー関数として SetBandInfo があります。

  • GetRect。指定されたバンドの四角形領域を取得します。

  • GetRowCount。Rebar コントロールのバンドの行数を取得します。

  • IDToIndex。指定されたバンドのインデックスを取得します。

  • GetBandBorders。バンドの境界線を取得します。

操作に加え、特定の Rebar バンドに作用するメンバー関数もいくつか用意されています。

InsertBandDeleteBand は、Rebar バンドを追加または削除するものです。 MinimizeBandMaximizeBand は、特定の 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);

関連項目

CReBarCtrl の使い方
コントロール