使用图标创建工具条,首先要创建图标列表,然后用工具栏关联相关图像列表,首先调用Create方法创建工具栏窗口,然后调用SetButtons方法设置工具栏按钮的索引,通过GetToolBarCtrl方法调用SetImageList方法关联图像列表,调用SetSizeas方法设置工具栏按钮和显示图标的大小,最后调用RepositionBars方法显示工具栏。
例子:
1.创建一个基于对话框的应用程序;
2.添加8个图标资源。
3.在对话框头文件中声明变量,代码如下:
CToolBar m_ToolBar; //工具栏对象
CImageList m_ImageList; //列表视图对象
4.在对话框的OnInItDialog函数中创建工具栏,代码如下:
m_ImageList.Create(32, 32, ILC_COLOR24 | ILC_MASK, 1, 1); //创建图像列表
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON1)); //向图像列表中添加图标
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON2));
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON3));
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON4));
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON5));
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON6));
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON7));
m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON8));
UINT array[11]; //声明数组
for (int i = 0; i < 11; i++) //根据数组元素的个数进行循环
{
if (i == 3 || i == 7 || i == 9) //判断是否为第4、8、10个按钮
array[i] = ID_SEPARATOR; //第4、8、10个按钮设为分隔条
else
array[i] = i + 1001; //为数组元素赋值
}
m_ToolBar.Create(this); //创建工具栏窗口
m_ToolBar.SetButtons(array, 11); //设置工具栏按钮的索引
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList); //关联图像列表
m_ToolBar.SetSizes(CSize(40, 40), CSize(32, 32)); //设置按钮和图标大小
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); //显示工具栏