平常我們在開發軟件中,會經常用到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;
這下我們就完成了我們的漂亮工具欄,運行一下程序,看一下程序的效果。