【初级】VS2015/MFC动态创建工具栏1(使用图标创建工具栏)

使用图标创建工具条,首先要创建图标列表,然后用工具栏关联相关图像列表,首先调用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);    //显示工具栏


 

你可能感兴趣的:(【初级】VS2015/MFC动态创建工具栏1(使用图标创建工具栏))