工具列直觀易用,MFC 專案啟用工具列極為簡單。但預設工具列按鈕僅顯示圖示,需滑鼠懸停才以 ToolTips 顯示功能說明。微軟瀏覽器工具列可同時顯示圖示與文字標籤(圖文並茂),若我們的軟體也具備此功能,將大幅提升使用者體驗。本文詳述實作步驟並提供完整範例專案。

CToolBar::SetSizes(SIZE sizeButton, SIZE sizeImage)設定工具按鈕與圖示尺寸。sizeButton 指定按鈕大小,sizeImage 指定圖示大小。兩參數 cx、cy 均須大於 0;按鈕寬度至少比圖示寬 7 像素,高度至少高 6 像素。
CToolBar::SetButtonText(int nIndex, LPCTSTR lpszText)設定按鈕顯示文字。nIndex 為按鈕在工具列中以 0 為基礎的索引(含分隔鈕),lpszText 為欲顯示文字。
CToolBar::EnableToolTips(BOOL bEnable)啟用/停用工具按鈕 ToolTips 功能。
CMainFrame::ShowControlBar(CControlBar* pBar, BOOL bShow, BOOL bDelay)控制工具列或狀態列顯示/隱藏。bDelay 為 TRUE 時延遲顯示。
BOOL m_bTextTips:記錄文字標籤顯示狀態(可為 private)SIZE m_sizeMax:儲存按鈕最大尺寸透過 ClassView 右鍵 CMainFrame → Add Member Variable 新增。
CMainFrame::CMainFrame() {
m_bTextTips = AfxGetApp()->GetProfileInt("Setting", "m_bTextTips", 1);
}
搭配 CWinApp::WriteProfileInt 於解構函數儲存設定。
CMainFrame::~CMainFrame() {
AfxGetApp()->WriteProfileInt("Setting", "m_bTextTips", m_bTextTips);
}
資源編輯器加入選單項,ID 為 ID_TOOL_TEXTTIPS,屬性勾選 Checked。
(後續程式碼請參考文末下載完整範例)