之前轉載過一篇過于mfc工具欄添加圖檔的文章,但是今天在使用CMFCToolBar時發現和CToolBar 是不一樣的
第一步:準備圖檔
不知道大家是如何制作工具欄圖檔的,我使用的方法是,使用Photoshop将幾個32×32的圖示橫向排成一排,圖示之間不需要留間隙,確定背景是透明的,然後儲存成png檔案。為了讓VS能夠把該圖檔做為資源導入,需要轉為bmp檔案:用畫圖程式打開png檔案,另存為24位位圖檔案。最後,把bmp檔案拷貝到項目的res檔案夾中,接下來就可以導入資源了,這裡假設導入的資源ID為IDB_BITMAP1(這也是預設的圖檔資源ID),因為下面會用到。
第二步:修改工具欄按鈕大小
這個最簡單,隻需要選中按鈕,在屬性欄中輸入需要的尺寸即可,尺寸要與圖示大小相同,這裡是32×32。然後根據需要建立按鈕、設定按鈕的ID。
(附:工具欄上會一直有一個按鈕,你修改它,就又會跑出來一個新的,這也就是建立按鈕的操作;删除按鈕的方法是:将按鈕拖離工具欄,用Delete鍵不管用,Delete隻是删除了按鈕上的圖像;插入分隔符的方法也很簡單:橫向右拖動按鈕一定距離,就會插入分隔符,反方向再拖一下,就删除分隔符了)
第三步:修改工具欄建立代碼
在MainFrame.cpp的OnCreate函數中找到下面的代碼:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME))
将其改為:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME_256, 0, 0, TRUE, 0, 0, IDB_BITMAP1))
好了,這三步做完,如果中間沒出現什麼差錯,運作程式應該可以看到效果了,祝大家好運!