MFC使用ToolBar工具欄添加真彩色圖標

         平常我們在開發軟件中,會經常用到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;

這下我們就完成了我們的漂亮工具欄,運行一下程序,看一下程序的效果。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章