MFC使用ToolBar工具栏添加真彩色图标

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nonecode/article/details/8098409

         平常我们在开发软件中,会经常用到ToolBar,但是如果只是一般的ToolBar颜色是16色,对于那些ToolBar有高要求的软件就显得很尴尬了,这时候我可以通过利用CImageList来为我们的ToolBar添加图标,让我们的ToolBar更漂亮。

1.建立一个MFC对话框工程

2.定义个CToolBar对象

CToolBar m_ToolBar;

3.在对话框的Dlg类中自定义个CreateToolBar函数

Bool CreateToolBar();

在该函数的定义中输入以下代码:

 

if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP//*设置靠右放置工具栏
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_ToolBar.LoadToolBar(IDR_TOOLBAR)
//加载工具栏资源
		)
	{   
		TRACE0("Failed to create toolbar\n");
return false;  
	}
	RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

	CImageList ImageList;
	m_ToolBar.SetSizes(CSize(32,32), CSize(32,32));
	ImageList.Create(32,32,ILC_COLOR32 | ILC_MASK,7,1);
        ImageList.SetBkColor(RGB(255,255,255));//设置背景颜色

//通过ImageList对象加载图标作为工具栏的图标
	ImageList.Add(AfxGetApp()->LoadIconA(IDI_ACCORD));
//通过CBitmap类对象来加载位图作为工具栏的图标
        CBitmap bm;
	int bl = bm.LoadBitmap(IDB_BITMAP_WE);
	ImageList.Add(&bm,(CBitmap*)NULL);
	bm.Detach();
//两种方法看个人需要
	m_ToolBar.GetToolBarCtrl().SetImageList(&ImageList);
	ImageList.Detach();
return true;

这下我们就完成了我们的漂亮工具栏,运行一下程序,看一下程序的效果。

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页