Ctooltip Ctrl 控制項使用

2021-07-22 05:06:36 字數 2010 閱讀 3058

還是那句老話:紙上得來終覺淺,絕知此事要躬行。前天給同事解決了乙個問題,他動態建立了乙個靜態控制項,可是這個靜態控制項的tooltip總是顯示不出來。我提示他在建立時要設定一下視窗風格。果然他在建立時加上ss_noprefix就好了。

今天抽空把這個知識記錄一下(這也算是我的乙個習慣了,無關乎技術含量),上網搜了一下ctooltipctrl類的用法,搜到一篇文章:

ctooltipctrl 使用詳細解說

我測試了該文的做法,發現要與該文作者商榷一下了。該文作者說:

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

具體**:

[cpp]view plain

copy

//1.在視窗的類定義中新增變數說明

class

ctooltiptestdlg : 

public

cdialog  

[cpp]view plain

copy

//2.在對話方塊的oninitdialog()函式中新增如下**

enabletooltips(true);  

m_tt.create(this

);  

m_tt.activate(true);  

cwnd* pw=getdlgitem(idc_check1);//idc_check1為控制項id //得到控制項的指標

m_tt.addtool(pw,l"check1lakjsfasfdasfd"

);//為此控制項新增tip

[cpp]view plain

copy

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

bool

ctooltiptestdlg::pretranslatemessage(msg* pmsg)  

return

cdialog::pretranslatemessage(pmsg);  

}  

這樣就完成了為控制項新增tip。

如果想修改已新增的tip的內容,可以使用updatetiptext函式,如下

[cpp]view plain

copy

cwnd* pw=getdlgitem(idc_check1);

//得到已新增tip控制項

m_tt.updatetiptext(l"asdflasdf"

,pw);

//更新tip的內容

其他控制函式具體可查msdn的ctooltipctrl類。

對於靜態文字框,要把notify的屬性設為true;而如果靜態文字控制項是動態建立的,必須給視窗風格新增ss_notify,如

[cpp]view plain

copy

m_statictext.create(_t(

"my static"

), ws_child|ws_visible|ws_border|ss_notify,   

crect(10,10,150,50),this

);  

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

很多的介面設計都需要有tip提示,下面描述一下tip的簡單使用方法 1.首先要new乙個ctooltipctrl的物件m pcontenttip 2.呼叫ctooltipctrl的create函式,指定其父視窗。可以為某個控制項,也可以為this。一般設為this。m pcontenttip cre...

CToolTipCtrl使用詳細解說

很多的介面設計都需要有tip提示,下面描述一下tip的簡單使用方法 1.首先要new乙個ctooltipctrl的物件m pcontenttip 2.呼叫ctooltipctrl的create函式,指定其父視窗。可以為某個控制項,也可以為this。一般設為this。m pcontenttip cre...

CToolTipCtrl使用詳細解說

ctooltipctrl使用詳細解說 m tt.create this cwnd pw getdlgitem idc check1 得到視窗指標 m tooltip.addtool pw,check1 新增 得到相應視窗id,有可能是hwnd 表明nid是否為hwnd nid getdlgctrli...