控制項介紹 CToolTipCtrl使用詳細解說

2021-06-18 09:50:01 字數 2628 閱讀 7389

很多的介面設計都需要有tip提示,下面描述一下tip的簡單使用方法:

1. 首先要new乙個ctooltipctrl的物件m_pcontenttip

2. 呼叫ctooltipctrl的create函式,指定其父視窗。可以為某個控制項,也可以為this。一般設為this。

m_pcontenttip->create( this, tts_alwaystip );

3. addtool。此函式是設定與某個控制項關聯的tip文字。此處可以為多個控制項新增不同的提示資訊。

m_pbuttontip->addtool( getdlgitem( 控制項id ), 文字 ); //#add 一定要用addtool 否則不會顯示 addtool(this,文字);也行.

4. settipbkcolor設定背景顏色。

5. settiptextcolor設定文字顏色。

6. 最重要的一步。在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);

另外,還可以使用m_pcontenttip->updatetiptext函式來更新tip資訊。

動態改變tooltip的顯示內容的方法及步驟:

上面所講的1、2、4步驟。

在增加tooltip時不指定顯示的字串,而是使用lpstr_textcallback。

在視窗中增加訊息對映 on_notify_ex( ttn_needtext, 0, settiptext )。

在視窗中增加乙個函式用於動態提供顯示內容,其原型為 bool settiptext( uint id, nmhdr * ptttstruct, lresult * presult ),下面的**可以根據傳入的引數判定應該顯示的內容。

bool cwndyour::settiptext( uint id, nmhdr * ptttstruct, lresult * presult )

}return true;

}注:

實際專案中常常重寫該類得到 不同風格,甚至是在其中新增,如cxinfotip.

常用的擴充套件按鈕控制項一般均封裝了乙個ctooltipctrl控制項.

另一篇:

二,動態改變tooltip的顯示內容的方法及步驟:

1.上面所講的1、2、4步驟。

2.在增加tooltip時不指定顯示的字串,而是使用lpstr_textcallback。

3.在視窗中增加訊息對映 on_notify_ex( ttn_needtext, 0, settiptext )。

4.在視窗中增加乙個函式用於動態提供顯示內容,其原型為 bool settiptext( uint id, nmhdr * ptttstruct, lresult * presult ),下面的**可以根據傳入的引數判定應該顯示的內容。

bool cwndyour::settiptext( uint id, nmhdr * ptttstruct, lresult * presult )

return(false);}

tooltip是win32中乙個通用控制項,mfc中為其生成了乙個類ctooltipctrl,總的說來其使用方法是較簡單的,下面講一下它的一般用法和高階用法。

一般用法步驟

1.新增ctooltipctrl成員變數 m_tt。

2.在父視窗中呼叫enabletooltips(true);

3.在視窗的oncreate(或者其他適當的位置)中向tooltip中新增需要顯示tip的子視窗,並同時指定相應的顯示字串ctooltipctrl::addtool(pwnd,"string to display")。

4.過載父視窗的 bool pretranslatemessage(msg* pmsg) ,在函式中呼叫 m_tt.relayevent(pmsg)。

下面假設在視窗cwndyour中使用ctooltipctrl

在類定義中新增變數說明:

classcwndyour:***

在oncreate中新增需要顯示tip的子視窗

cwndyour::oncreate(....)

在bool pretranslatemessage(msg* pmsg)中新增**

bool cwndyour::pretranslatemessage(msg* pmsg)

return cparentclass::pretranslatemessage(pmsg);

} 這樣當滑鼠移動到相應的子視窗上時會顯示出相應的tooltip。

UIScrollView控制項介紹

一 知識點簡單介紹 1.uiscrollview控制項是什麼?1 移動裝置的螢幕 大 小是極其有限的,因此直接展 示在 使用者眼前的內容也相當有限 2 當展 示的內容較多,超出 乙個螢幕時,使用者可通過滾動 手勢來檢視螢幕以外的內容 3 普通的uiview不具備滾動功能,不能顯 示過多的內容 4 u...

ToggleSwitch控制項介紹

toggleswitch控制項是乙個開關控制控制項,這個控制項用到的地方很多。我們可以用他來控制開關的開啟或者關閉。本文介紹下該控制項的常用屬性及用法。1.最重要的乙個屬性 ison 屬性 這個屬性是用來控制開關是開啟還是關閉的,一般預設是關閉的,可以根據需要來設定。2.其他都是一些簡單的配置屬性 ...

UpdateProgress控制項簡單介紹

在asp.net ajax beta2中,updateprogress控制項已經從 增值 ctp中移到了asp.net ajax核心中。以下兩篇關於updateprogress的文章基本翻譯自asp.net ajax官方 主要內容 1 updateprogress控制項簡單使用 2 使用多個upda...