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 带。
下面的示例演示如何将工具栏带 (m_wndToolBar) 添加到现有 rebar 控件 (m_wndReBar)。 通过初始化 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);