对 Rebar 控件使用图像列表
每个 rebar 带区除了别的之外还可以包含关联图像列表的图像。 以下过程详述了在 rebar 带区显示图像的必需步骤。
在 rebar 带区显示图像
通过调用 SetImageList 将图像列表附加到 rebar 控件对象,并将指针传递给现有图像列表。
修改 REBARBANDINFO 结构以向 rebar 带区分配图像:
将 fMask 成员设置为
RBBIM_IMAGE
,必要时使用位 OR 运算符包括其他标志。将 iImage 成员设置为要显示图像的图像列表索引。
使用必需信息初始化任何其余的数据成员,如包含子窗口的大小、文本和句柄。
通过调用 CReBarCtrl::InsertBand 插入新带区(带有图像),传递 REBARBANDINFO 结构。
以下示例假定已将带两个图像的现有图像列表对象附加到 rebar 控件对象 (m_wndReBar
)。 包含第一个图像的新的 rebar 带区(由 rbi
定义)是通过调用 InsertBand
添加的:
REBARBANDINFO rbi = {0};
rbi.cbSize = sizeof(REBARBANDINFO);
rbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD | RBBIM_IMAGE |
RBBIM_CHILDSIZE | RBBIM_STYLE | RBBIM_TEXT;
rbi.fStyle = RBBS_GRIPPERALWAYS;
rbi.cxMinChild = 200;
rbi.cyMinChild = 50;
rbi.lpText = _T("Band #2");
rbi.cch = 7;
rbi.cx = 300;
rbi.hbmBack = (HBITMAP)m_RebarBitmap;
rbi.iImage = 0;
rbi.hwndChild = (HWND)m_Toolbar2;
m_Rebar.GetReBarCtrl().InsertBand(1, &rbi);