使用CtoolTipCtrl

使用CtoolTipCtrl

 

導讀:本文適用於相對靜止的控件,比如按鈕,不適用於向樹型控件這樣的位置不固定的控件(因爲樹型控件經常被摺疊和展開)

 

CtoolTipCtrl封裝了一個工具提示的控件,可彈出一個單行的小窗口來顯示一些描述信息,大多時候它是隱藏的,除非用戶將光標移到要顯示提示的工具上面,並且停留大概半秒的時間它才顯示,當單擊鼠標或者移走光標的時候這個提示窗口就會消失

 

例子:給對話框的按鈕添加提示功能

具體步驟:

 

l        首先創建一個對話框程序TestToolTip

l        TestToolTip類中定義一個CtoolTipCtrl對象

public:

    CToolTipCtrl m_pToolTipCtrl;

 

l        創建一個工具提示控件並關聯到m_pToolTipCtrl對象,(位置:OnInitDialog

風格

意義

TTS_ALWAYSTIP

指示當光標在一個工具上時顯示工具提示,不管工具提示的屬主窗口是否是處於活動狀態。沒有這個風格,則只有當工具的屬主窗口是活動的時候纔會顯示工具提示控件,否則不顯示

TTS_NOPREFIX

這個風格禁止系統將 & 字符從一個字符串中去掉。如果一個工具提示控件沒有 TTS_NOPREFIX 風格,則系統自動去掉 & 字符,讓應用程序用同一個字符串作爲菜單項和工具提示控件中的文本

 

if (!m_pToolTipCtrl.Create(this, TTS_ALWAYSTIP))

    {

       TRACE(_T("Unable To create ToolTip/n"));

       return FALSE;

    }

 

l        調用AddTool向工具提示添加註冊,這樣當光標移動到工具上才能顯示信息

 

m_pToolTipCtrl.AddTool(GetDlgItem(IDOK),_T("確定按鈕,點擊關閉對話框"));

 

l        添加虛函數PreTranslateMessage

 

BOOL CTestToolTipDlg::PreTranslateMessage(MSG* pMsg)

{

    // TODO: Add your specialized code here and/or call the base class

    if(pMsg->message== WM_LBUTTONDOWN ||

       pMsg->message== WM_LBUTTONUP ||

       pMsg->message== WM_MOUSEMOVE)

       m_pToolTipCtrl.RelayEvent(pMsg);

    return CDialog::PreTranslateMessage(pMsg);

}

 

效果圖:

 CtoolTipCtrl

若在樹型控件中使用tool tip

參考:http://www.codeproject.com/treectrl/treetooltip.asp

 

 
發佈了47 篇原創文章 · 獲贊 5 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章