winform tooltip,
http://blog.sina.com.cn/s/blog_6163bdeb0100pcld.html
若要向窗口或其中的控件添加提示框,可以使用MFC的类CToolTipCtrl。使用方法如下
1.在窗口的类定义中添加变量描述:
类CTooltipTestDlg:公共CDialog{
…
公共:
TT;
…
}
2.在对话框的OnInitDialog()函数中添加以下代码
enable tooltips(TRUE);
tt。创造(这个);
tt。激活(真);
CWnd * pW=GetDlgItem(IDC _ check 1);//获取指向控件的指针
tt。AddTool(pW,L check 1 lakjsfasfdasfd );//为此控件添加提示
3.重载父窗口的Bool PretranslateMessage(msg * pmsg),调用m_tt。函数中的RelayEvent(pMsg)
BOOL CTooltipTestDlg:PreTranslateMessage(MSG * pMsg)
{
//TODO:在此添加您的专用代码和/或调用基类
if (NULL!=TT。GetSafeHwnd())
{
tt。relay event(pMsg);
}
返回CDialog:PreTranslateMessage(pMsg);
}
这就完成了向控件添加提示。
如果要修改添加的提示的内容,可以使用UpdateTipText函数,如下所示
CWnd * pW=GetDlgItem(IDC _ check 1);//获取添加的提示控件
tt。UpdateTipText(Lasdflasdf ,pW);//更新提示的内容
其他控制功能可以在MSDN的CToolTipCtrl类中找到。
对于静态文本框,将Notify属性设置为TRUE。如果静态文本控件是动态创建的,则必须将SS_NOTIFY添加到窗口样式中,例如
m_StaticText。Create(_T(mystatic ),WS _ CHILD WS _ VISIBLE WS _ BORDER SS _ NOTIFY,
CRect(10,10,150,50),this);
详情请参考以下链接。
参考:
CToolTipCtrl用法详解3358 hi . Baidu . com/fate yeh/blog/item/fc 7c 07 b 37 ab 250 a7d 9335 aa 7 . html
MFC 3358 www..com/clever101/archive/2010/05/01/1725578.html中静态文本的提示
另外,如果你想得到一个更强大的提示提示框,你可以使用白俄罗斯人编写的定制tooltiphttp://www.codeproject.com/KB/miscctrl/pptooltip.aspx。
http://www . cn blogs . com/clever 101/archive/2010/05/01/1725578 . html
MFC中向静态文本添加提示的方法
作者:朱
资料来源:http://www..com/clever101/
有句老话:纸上谈兵难学,实干难做。前天给同事解决了一个问题。他动态创建了一个静态控件,但是这个静态控件的工具提示无法显示。我提醒他在创建窗口时设置窗口样式。果然他在创建的时候就加了SS_NOPREFIX。
今天我花时间记录了这些知识(这也是我的一个习惯,和技术含量无关)。我在网上搜索CToolTipCtrl类的用法,找到一篇文章:
CToolTipCtrl用法的详细说明
我测试了这篇文章的做法,发现还得和这篇文章的作者讨论一下。作者说:
ToolTip是Win32中的一个通用控件,MFC中为它生成了一个类CToolTipCtrl。总的来说,它的使用方法比较简单。先说一下它的一般用法和高级用法。
一般使用步骤:
1.添加CToolTipCtrl成员变量m_tt。
2.在父窗口中调用EnableToolTips(TRUE );
3.将需要显示提示的子窗口添加到窗口的OnCreate(或其他适当位置)的工具提示中,同时指定对应的显示字符串CTOOLTIPTRL: AddTool (pwnd, string to display )。
4.重载父窗口的Bool PretranslateMessage(msg * pmsg),调用m_tt。函数中的RelayEvent(pMsg)。
我们假设在窗口CWndYour中使用了CToolTipCtrl。
然而,正如我在本文中所做的,我将鼠标移到静态文本控件上,提示没有出现。我觉得正确的做法是设置窗口样式。具体来说,如果拖动控件,请将Notify属性设置为TRUE,如下图所示:
TOOLTIP border=0 alt= src= http://usera . image cave . com/clever 101/program 3/static属性设置。JPG real _ src= http://usera . image cave . com/clever 101/program 3/static属性设置。JPG的
如果是动态创建静态文本控件,必须将SS_NOTIFY添加到窗口样式中(我猜其他窗口也差不多),具体来说:
TOOLTIP alt=copy code src= 3359common..com/images/copycode.gif real _ src= 3358common..com/images/copycode.gif
class caboutdlg:public dialog
{
公共:
CAboutDlg();
//对话数据
枚举{ IDD=IDD _ about box };
受保护:
virtualvoiddoddataxexchange(CDATA exchange * pdx);//DDX/DDV支持
//实现
受保护:
声明消息映射()
观众:
virtualboolonnitdialog();
私人的:
tt
cstaticm _ statictext
观众:
virtualboolpretractmessage(msg * pmsg):
}:
BOOLCAboutDlg:OnInitDialog()
{
CD dialog:ininitdialog();
//全部:在此添加额外的初始化
S7-1200可编程控制器。创建(_ t( mysatic )ws _ child ws _ visible ws _ border ss _ notify,
CRect(10,10,150,50),这一点;
tt,你好吗?创造(此);
tt,你好吗?激活(真):
tt,你好吗?AddTool( m_StaticText,_T(这是一个静态文本我的天);//添加
返回TRUE://返回真实的除非syusetthefnostcontrol
//异常:OCX属性页应返回假的
}
boolcaboutdlg:翻译前消息(msg * pmsg)
{
//全部:在此添加专用代码和/或调用基类
如果(零!S7-1200可编程控制器GetSafeHwnd())
tt,你好吗?报告(pmsg);
return CD dialog:pre translate message(pmsg);
}
http://嗨。百度一下。com/fate yah/blog/item/fc 7c 7b 37 ab 250至7d9335aa7.html
工具控制使用详细解说
2006年8月8日至14日上午8时58分
按(作者)闻怡洋wy _ CQ @ 188。net http://vchelp。163 .网
工具提示是Win32中中一个通用控件,MFC中为其生成了一个类ctooltipctrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。
一般用法步骤:
添加工具控制成员变量tt,你好吗?
在父窗口中调用启用工具提示(正确):
在窗口的OnCreate(或者其他适当的位置)中向工具提示中添加需要显示小提示的子窗口,并同时指定相应的显示字串ctoolpctrl:添加工具(pwnd,"显示字符串")。
重载父窗口的布尔预处理消息(MSG* pMsg),在函数中调用tt,你好吗?报告(pMsg).
下面假设在窗口CWndYour公司中使用工具控制
在类定义中添加变量说明:类别你的名字是:XXX { ctoolcype ctrl m _ TT;}在OnCreate(创建)中添加需要显示小提示的子窗口cwndhour:OnCreate(.我.){启用工具提示(true);tt,你好吗?创造(此);tt,你好吗?activate(TRUE):cwnd * pw=get lgitem(IDC _ check 1);//得到窗口指针m_tooltipAddTool(pW," check 1 ");//添加.我.}在布尔预处理消息(MSG* pMsg)中添加代码bool cwndtu:pre translate message(msg * pmsg){ { m _ TT .报告(pmsg);}返回cparecclass:pre translate message(pmsg);}
这样当鼠标移动到相应的子窗口上时会显示出相应的工具提示。
动态改变工具提示的显示内容的方法及步骤:
上面所讲的一、二、四步骤。
在增加工具提示时不指定显示的字串,而是使用lpstr _回调。
在窗口中增加消息映射ON_NOTIFY_EX( TTN_NEEDTEXT,0,SetTipText).
在窗口中增加一个函数用于动态提供显示内容,其原型为BOOL SetTipText( UINT id、nmhdr *、lrsult * pre),下面的代码可以根据传入的参数判定应该显示的内容。
bool cwndtu:settiptext(uint id、nmhdr * ptttstruct、lrsult * pre){ tool text * pttt=(tool text *)PTT TTS trut;uint NID=ptttschat-id from;//得到相应窗口身份号,有可能是硬件if(pttt-ufls TTF _ idishwnd)//表明-巢是否为hwnd { NID=:获取LG ctrl lid(hwnd)NID;//从温得得到身份号值,当然你也可以通过温得值来判断switch(NID)case(IDC _ your _ control 1)strcpy(pttt-lpsz text,your _ string 1);//设置返回真实的打断;打断;案例(IDC_YOUR_CONTROL2) //设置相应的显示字串返回真实的打断;打断;}返回(假);}
工具提示是Win32中中一个通用控件,MFC中为其生成了一个类ctooltipctrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。
一般用法步骤:
添加工具控制成员变量tt,你好吗?
在父窗口中调用启用工具提示(正确):
在窗口的OnCreate(或者其他适当的位置)中向工具提示中添加需要显示小提示的子窗口,并同时指定相应的显示字串ctoolpctrl:添加工具(pwnd,"显示字符串")。
重载父窗口的布尔预处理消息(MSG* pMsg),在函数中调用tt,你好吗?报告(pMsg).
下面假设在窗口CWndYour公司中使用工具控制
在类定义中添加变量说明:类别你的名字是:XXX { ctoolcype ctrl m _ TT;}在OnCreate(创建)中添加需要显示小提示的子窗口cwndhour:OnCreate(.我.){启用工具提示(true);tt,你好吗?创造(此);tt,你好吗?activate(TRUE):cwnd * pw=get lgitem(IDC _ check 1);//得到窗口指针m_tooltipAddTool(pW," check 1 ");//添加.我.}在布尔预处理消息(MSG* pMsg)中添加代码bool cwndtu:pre translate message(msg * pmsg){ { m _ TT .报告(pmsg);}返回cparecclass:pre translate message(pmsg);}
这样当鼠标移动到相应的子窗口上时会显示出相应的工具提示。
动态改变工具提示的显示内容的方法及步骤:
上面所讲的一、二、四步骤。
在增加工具提示时不指定显示的字串,而是使用lpstr _回调。
在窗口中增加消息映射ON_NOTIFY_EX( TTN_NEEDTEXT,0,SetTipText).
在窗口中增加一个函数用于动态提供显示内容,其原型为BOOL SetTipText( UINT id、nmhdr *、lrsult * pre),下面的代码可以根据传入的参数判定应该显示的内容。
bool cwndtu:settiptext(uint id、nmhdr * ptttstruct、lrsult * pre){ tool text * pttt=(tool text *)PTT TTS trut;uint NID=ptttschat-id from;//得到相应窗口身份号,有可能是硬件if(pttt-ufls TTF _ idishwnd)//表明-巢是否为hwnd { NID=:获取LG ctrl lid(hwnd)NID;//从温得得到身份号值,当然你也可以通过温得值来判断switch(NID)case(IDC _ your _ control 1)strcpy(pttt-lpsz text,your _ string 1);//设置返回真实的打断;打断;案例(IDC_YOUR_CONTROL2) //设置相应的显示字串返回真实的打断;打断;}返回(假);}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。