程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 在工具欄按鈕上添加文本標簽

在工具欄按鈕上添加文本標簽

編輯:vc教程

  一、前 言

  對於工具欄,我想大家一定不陌生,它直觀,使用方便,它給應用程序的用戶帶來極大的方便.對VC++程序員來說,為自己開發的軟件加上一個工具欄並不難,幾乎每本介紹VC++的書都少不了介紹這方面的內容,並且,如果在開發初期就想加入工具欄的話,就更簡單了,MFC 可自動為您生成工具欄.可是我們所說的這些工具欄都有一個共同的特點,它們的每個工具按鈕上只有一個位圖直觀地向用戶顯示它的功能,將鼠標移動到某個工具按鈕上後,很快就彈出一個標簽(ToolTips),以文字的形式表明它的功能.

  作為微軟用戶,我們最熟悉的莫過於微軟的浏覽器了,它的工具欄是可以定制的,可以在工具按鈕上只顯示位圖,並采取ToolTips技術,也可在工具欄上同時顯示位圖和文本標簽(可謂"圖文並茂").我想如果我們的軟件也有這個功能的話,會不會使得我們的軟件對用戶更友好,使用更方便呢? 本文詳細介紹了實現的具體步驟並給出完整的示例工程供參考。

  示例代碼運行效果圖

  二、主要函數

  下面我們就來介紹這個功能的實現,首先介紹幾個相關的函數:

  1.CToolBar::SetSizes(SIZE sizeButton,SIZE sizeImage)

  我想不用介紹,朋友們也都能猜出這個函數的功能了吧.它用於設置工具按鈕的大小以及它上面的位圖的大小.這個函數有兩個參數,其中,sizeButton用於指定按鈕的大小,sizeImage用於指定位圖的大小.需注意的是:這兩個參數的cx域和cy域都必須大於零,並且,sizeButton的寬度(cx)至少要比sizeImage的寬度大7,高度(cy)至少大6.

  2.CToolBar::SetButtonText(int nIndex , LPCTSTR lpstText)

  這個函數用於設置工具按鈕上所顯示的文字,nIndex用於指定所設置的工具按鈕在工具欄中基於0的索引值(包括分割符),即第nIndex+1個工具按鈕將被設置,lpstText就是指定所要顯示的文字了.

  3.CToolBar::EnableToolTips(BOOL bEnable)

  這個函數用於設置/取消工具按鈕的ToolTips功能.

  4.CMainFrame::ShowControlBar(CControlBar * pBar,BOOL bShow, BOOL bDelay)

  這個函數用於設置工具欄或狀態欄的顯示與否.

  pBar: 指向被設置工具欄或狀態欄對象的指針

  bShow: 為TRUE,則顯示工具欄或狀態欄 否則隱藏;

  bDelay: 為TRUE,則延遲顯示時間,否則立刻顯示工具欄或狀態欄

  三、前期工作

  了解了這幾個函數後,我們就可以為工具欄添加文本標簽了.

  首先我們為CMainFrame類添加兩個變量

  1)BOOL類型的成員變量m_bTextTips,可以是私有變量,用於存儲文本標簽顯示與否的狀態.

  2)SIZE類型的成員變量m_sizeMax,用於存儲按鈕的最大尺寸

  方法:在Workspace窗口的ClassView視圖中右鍵單擊CMainFrame類,在彈出的快捷菜單中單擊Add Member Variable...菜單項.在彈出的對話框中如下輸入即可:

  我們先進行用戶界面的編寫,如下:

  1.在CMainFrame類的結構函數CMainFrame()中加入m_bTextTips的初始化代碼,如下:

  

CMainFrame::CMainFrame() {
    
        m_bTextTips=AfxGetApp()->GetProfileInt("Setting","m_bTextTips",1);
}
在此我們使用了函數CWinApp::GetProfileInt("Setting","m_bTextTips",1),它的原形是這樣的:

  UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault );

  它和下面的函數CWinApp::Write rofileInt("Setting","m_bTextTips",m_bTextTips)搭配使用,

  對該函數的使用,您可參考幫助文件,本文不再贅述.

  2.在CMainFrame類的析構函數~CMainFrame()中加入如下代碼保存文本標簽的顯示狀態:

  

CMainFrame::~CMainFrame() {    AfxGetApp()->WriteProfileInt("Setting","m_bTextTips",m_bTextTips);
}

  3.加入相應的菜單項,用於控制文本標簽的顯示與否,如下:

  在屬性對話框中,選中Checked復選框,ID號為:ID_TOOL_TEXTTIPS.

  4.用ClassWizard加入該菜單項的命令處理函數和接口更新處理函數,並加入以下代碼:

本文示例代碼或素材下載

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved