MFC中通过Tooltip类来实现悬浮鼠标显示提示信息
来源:互联网 发布:大数据 风险管理 编辑:程序博客网 时间:2024/05/01 19:53
方法一:
利用CWnd本身自身支持的tooptip来实现,这种方法适用给控件增加tooltip,非常方便和简单方法如下:
1、在窗口中增加消息映射ON_NOTIFY_EX(TTN_NEEDTEXT, 0, SetTipText)
SetTipText是个回调函数,名字叫什么无所谓,符合原型就行了,原型下面会说。
2、EnableToolTips(TRUE),使用这个方法调用这个函数是必不可少的.建议在CDialog::OnInitDialog调用。
3、在窗口中增加一个函数用于动态提供显示内容,其原型为 BOOL SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult),下面的代码可以根据传入的参数判定应该显示的内容。
BOOL CWndYour::SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pTTTStruct;
UINT nID = pTTTStruct->idFrom; //得到相应窗口ID,有可能是HWND
//表明nID是否为HWND
if (pTTT->uFlags & TTF_IDISHWND)
{
//从HWND得到ID值,当然你也可以通过HWND值来判断
nID = ::GetDlgCtrlID((HWND)nID);
if (NULL == nID)
return FALSE;
switch(nID)
{
case(IDC_YOUR_CONTROL1)
strcpy(pTTT->lpszText, your_string1);
break;
case(IDC_YOUR_CONTROL2)
//设置相应的显示字串
break;
default:
break;
}
return TRUE;
}
return FALSE;
}
4、很重要的一点,要显示的控件必须设置notify属性,否则收不到notify消息,自然也就显示不了tooltip。
方法二:
使用MFC中封装好的CToolTipCtrl类,步骤如下:
1、定义全局变量 CToolTipCtrl m_tooltip和CWnd* pwnd,pwnd用来指定要显示控件的指针
2、在窗体的OnInitDialog()中或OnShowWindow()中创建m_tooltip。
//创建m_tooltip
m_tooltip.Create(pwnd);
//将CToolTipCtrl与相应的控件对应起来
m_tooltip.AddTool(pwnd, TTS_ALWAYSTIP);
//设定文字的颜色
m_tooltipSetTipTextColor(RGB(0,0,255));
//设定提示文字在控件上停留的时间
m_tooltip.SetDelayTime(150);
3、重载PreTranslateMessage(MSG* pMsg)函数,增加如下代码:
if(m_tooltip.m_hWnd!=NULL)
m_tooltip.RelayEvent(pMsg);
4、捕获主窗口的WM_MOUSEMOVE消息,在OnMouseMove(UINT nFlags, CPoint point)函数中增加如下代码:
//鼠标在相应的控件上移动时显示提示文字
m_tooltip.UpdateTipText("怎么样",pwnd);
5、说明
其实上面的第四步可以不要,就是在AddTool时,就可以将它的第二个参数就设置为提示文字,至于风格可以在Create的时候设置。
方法三:
自己封装SDK中的这个控件,难度是大点,但是可控性和适用性都可以大大提高。
e.g.
// 常量定义
// tooltip
#define TTS_BALLOON 0x40
#define TTS_CLOSE 0x80
#define TTS_NOFADE 0x20
m_tooltip.Create(this, TTS_BALLOON | TTS_ALWAYSTIP | TTS_CLOSE | TTS_NOFADE);
m_tooltip.Activate(TRUE);
m_tooltip.AddTool(this, DEFINE_INFO_FLOATTIP);
m_tooltip.SetTipTextColor(RGB(0, 0, 255));
m_tooltip.SetTipBkColor(RGB(255,0,255));
m_tooltip.SetDelayTime(150);
- MFC中通过Tooltip类来实现悬浮鼠标显示提示信息
- MFC中通过Tooltip类来实现悬浮鼠标显示提示信息
- MFC CTooLBar 工具栏显示提示信息ToolTip
- MFC 中 悬浮提示Tooltip 多行显示(可以超过80字符限制)
- MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
- C# GridView中鼠标指向行ToolTip提示相关信息
- idea 鼠标悬浮时显示文档信息提示框
- Winform中ListView鼠标移动使用toolTip显示信息
- eclipse鼠标悬浮提示过快 tooltip推迟 的问题解决办法。
- Ext实现鼠标悬浮提示
- AS3 ToolTip鼠标提示类
- ToolTip插件,鼠标悬停时显示信息
- [MFC] 鼠标移动到控件上显示提示信息
- MFC中实现鼠标停靠提示
- 简单的EXT之ToolTip[悬浮层信息显示]
- datagrid 列鼠标悬浮显示全部信息
- C#封装RichTextBox实现鼠标停留,显示当前单词文本的tooltip提示
- C#中,当鼠标移动到控件上,动态显示提示内容 -> 用代码操作ToolTip
- UltraEdit 操作小技巧--一次性修改多列
- 如何让网站被百度快速收录
- onMeasure(int widthMeasureSpec, int heightMeasureSpec)
- 编译appche http server:
- 8、手机防盗--通过拨号进入手机防盗
- MFC中通过Tooltip类来实现悬浮鼠标显示提示信息
- jfinal拦截器
- 简单的WebService编写与调用
- android 屏幕截屏源码分享
- 10 款优秀的在线 JavaScript 工具推荐
- MATLAB内存管理
- MyEclipse6.5 @Override 时出错误 The method of type must override a superclass method
- centos 安装mysql
- 设计模式之策略模式