一直以來,想在 VC++ 專案中實現像 Office、Visual Studio 那樣擁有 24 位真彩色 (True Color) 工具列,對許多開發者來說都是個棘手的難題。網路上雖有相關文章,但多語焉不詳,初學者難以上手。本文將分享一套「神兵利器」組合——Visual Toolbar 圖形化製作工具 與 CTrueColorToolBar 載入類別,帶你幾分鐘內輕鬆搞定專業級真彩工具列。

過去做工具列位圖,程式設計師往往要硬著頭皮用 Photoshop 一張張拼貼 16x16 或 24x24 的小圖標,對齊、調色、生成 disabled 狀態圖……稍有不慎就得重來,極其繁瑣。Visual Toolbar 的出現徹底改變了這一切:

不到一分鐘,一組專業的 48x48 高解析度真彩工具列素材就新鮮出爐了。
有了素材,還得靠代碼載入。CTrueColorToolBar 類別 (來源: CodeProject) 專門解決 MFC 預設僅支援 16 色工具列的限制,完美支援 24/32 位真彩色圖像列表。
環境: Windows 2000 + VC 6.0 SP5
TrueColorToolBar.h/.cpp 複製到專案目錄,並在 FileView 中加入專案。於 MainFrm.h 頂部引入標頭檔:
#include "TrueColorToolBar.h"
MainFrm.h 中,將 CToolBar m_wndToolBar; 修改為 CTrueColorToolBar m_wndToolBar;。Normal.bmp、Hot.bmp、Disabled.bmp 複製至 res 目錄,並在 ResourceView 中 Import 為位圖資源,ID 分別設為 IDB_NORMAL、IDB_HOT、IDB_DISABLED。IDR_MAINFRAME 工具列資源,刪除多餘按鈕,雙擊按鈕將尺寸修改為 48x48 (對應素材尺寸)。CMainFrame::OnCreate 中,於工具列建立後調用:
// 參數:按鈕尺寸(寬=高=48), Normal圖ID, Hot圖ID, Disabled圖ID m_wndToolBar.LoadTrueColorToolBar(48, IDB_NORMAL, IDB_HOT, IDB_DISABLED);
後續只需像操作普通 CToolBar 一樣,透過資源編輯器設定按鈕 ID、提示文字,並在類別精靈中添加命令處理函數即可。本文附帶完整範例代碼,歡迎下載研究。