1. 程式人生 > >使用VS2010的CMFCToolbar實現真彩色工具欄

使用VS2010的CMFCToolbar實現真彩色工具欄

從VC2008的SP1開始,新加入了很多MFC控制元件,其介面效果雖然比不上WPF,但與之前的控制元件相比,也已經是飛越了。無奈目前大家對它的研究還是比較少,雖然自帶了一些示例程式,仍然不能滿足開發的方方面面。貌似C++的高手更喜歡舊版的MFC控制元件,這也難怪,新版的控制元件效果,用舊版的也能實現,只是有些麻煩,也可能高手們都不用MFC吧。我是剛從.net轉入C++的新兵,用慣了framework提供的簡單控制元件,再用這MFC,別提多彆扭了,唉,沒辦法,工作嘛。

 

好了,言歸正傳,這段時間用C++開發應用,使用了最新的VS2010,嚮導自動生成的MFC框架裡便自動應用了新版MFC控制元件,想實現大尺寸+24位真彩色的工具欄,從網上查到的多是使用CToolbarCtrl實現,在經過了幾天的沉澱後,終於找到了一條捷徑(估計是目前比較簡單就能實現這個功能的方法了),知識碎片都是從網上獲得的,成果也應跟大家分享。

 

第一步:準備圖片

不知道大家是如何製作工具欄圖片的,我使用的方法是,使用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))

 

好了,這三步做完,如果中間沒出現什麼差錯,執行程式應該可以看到效果了,祝大家好運!
--------------------- 
作者:fxfeixue 
來源:CSDN 
原文:https://blog.csdn.net/fxfeixue/article/details/6696400 
版權宣告:本文為博主原創文章,轉載請附上博文連結!