相信使用過VC的人都深有感觸VC那個惡心的工具欄 ,我們想要在對話框上添加自己的工具欄但是卻發現 網上很多例子都寫的含糊不清 今天我就給大家
寫一個VC特色工具欄
VC 的個性工具欄的制作離不開三個類 CToolBar CToolBarCtrl CImageList
1. CToolBar工具條類 操作工具條的類 而不是工具條上面的按鈕
CToolBarCtrl 這個是鑲嵌在工具條上面的按鈕的類 CToolBar::GetToolBarCtrl()函數傳回CToolBarCtrl的引用 進而我們可以來操作工具條上面的按鈕
CImageList 這個類大家留心下會發現 很多地方都見過 CListCtrl CTreeCtrl 都見過 我以前也是不知道怎麼用是以 很糾結 。。。下面就介紹這個類的用法
下面看步驟 首先定義一個CToolBar 對象
CToolBar m_wndToolBar; //CMyDlg 成員函數
m_wndToolBar.CreateEx( this,TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE | CBRS_ALIGN_LEFT | CBRS_GRIPPER | CBRS_TOOLTIPS,CRect(4,4,0,0));//建立工具欄
m_wndToolBar.LoadToolBar(IDR_TOOLBAR1) ; //加載工具欄資源 我們自己要新增加一個ToolBar 資源
CImageList *list=new CImageList; //這裡我就定義指針 不過會導緻記憶體洩露最好是定義為 類成員變量
list.Create(20,20,ILC_COLOR8,0,4); //首先要建立圖像清單 好幾種重載函數 具體看MSDN
list.Add(...) //增加位圖 圖示 等等 N個重載函數 這是想圖像清單中增加一個位圖
m_wmdToolBar.SetImageList(list);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); //停靠工具欄
基于對話框的特色工具欄的具體步驟就這些剩下的就要自己擴充了 理清思路 就不糾結了希望能幫助 和我一樣的新手