给按钮、静态文本 CListCtrl等添加功能提示(tollTip)功能
(1)
在头文件中定义CToolTipCtrl对象m_ToolTip;
CToolTipCtrl m_ToolTip;
(2)
m_ToolTip.Create(this);//创建对象
m_ToolTip.AddTool( GetDlgItem(IDC_BTN_PLAYSTOP), "连接" ); //lianjie按钮的提示
m_ToolTip.AddTool( GetDlgItem(IDC_CHECK_VIEW), "本地预览" ); //按钮的提示
m_ToolTip.AddTool( GetDlgItem(IDC_BTN_BMPCAPTURE), "BMP抓图" ); //按钮的提示
m_ToolTip.AddTool( GetDlgItem(IDC_BTN_LOCALREC), "本地录像" ); //按钮的提示
m_ToolTip.AddTool( GetDlgItem(IDC_BTN_TALK), "语音对讲" ); //按钮的提示
m_ToolTip.AddTool( GetDlgItem(IDC_BTN_RESET), "重启设备" ); //按钮的提示
m_ToolTip.AddTool( GetDlgItem(IDCANCEL), "退出系统" ); //按钮的提示
m_ToolTip.AddTool( GetDlgItem(IDC_BTN_CLEAR), "清除消息" ); //按钮的提示,
m_ToolTip.SetDelayTime(200);
m_ToolTip.SetTipTextColor( RGB(0,0,0 ));//设置提示字体颜色
m_ToolTip.SetTipBkColor( RGB(255,255,255));//设置提示背景颜色
m_ToolTip.Activate(TRUE);
(3)
添加虚函数PreTranslateMessage
BOOL CLAUMp4TestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
switch(pMsg->message)
{
case WM_MOUSEMOVE:
m_ToolTip.RelayEvent(pMsg);
}
return CDialog::PreTranslateMessage(pMsg);
}
//
为CListCtrl单元格添加提示信息的类
一、思路:
1. 确定鼠标落在哪一个单元格上面
2. 获得该单元格的文字信息
3. 更新tooltip的信息。
二、实施:
1. 添加CListCtrl的派生类CMyListCtrl
2.添加声明成员变量
CToolTipCtrl m_toolTip; //文本提示类int m_nSubItem; //存放行号int m_nItem; //存放列号BOOL m_bEnableTips; //是否开启文本提示
3.初始化成员变量
CMyListCtrl::CMyListCtrl()
{m_bEnableTips=TRUE;m_toolTip.Create(this);
}
4. 为该派生类添加WM_MOUSEMOVE消息
5. 在WM_MOUSEMOVE的消息处理函数中添加如下代码:
void CMyListCtrl::OnMouseMove(UINT nFlags, CPoint point)
{// TODO: Add your message handler code here and/or call default//如果开启文本提示if(m_bEnableTips){CString str;LVHITTESTINFO lvhti;// 判断鼠标当前所在的位置(行, 列)lvhti.pt = point; SubItemHitTest(&lvhti);//如果鼠标移动到另一个单元格内, 则进行处理; 否则, 不做处理if((lvhti.iItem != m_nItem) || (lvhti.iSubItem != m_nSubItem)){// 保存当前鼠标所在的(行,列)m_nItem = lvhti.iItem;m_nSubItem = lvhti.iSubItem;// 如果鼠标移动到一个合法的单元格内,则显示新的提示信息// 否则, 不显示提示if((m_nItem != -1) && (m_nSubItem != -1)){// @@@@@@@@ 在这里修改要显示的提示信息// 这里仅仅是一个例子---获得当前单元格的文字信息, 并设置为新的提示信息str = GetItemText(m_nItem ,m_nSubItem); m_toolTip.AddTool(this, str); // 显示提示框m_toolTip.Pop();}else{m_toolTip.AddTool(this, "");m_toolTip.Pop();}}}CListCtrl::OnMouseMove(nFlags, point);
}
6.添加虚函数 PreTranslateMessage
BOOL CMyListCtrl::PreTranslateMessage(MSG* pMsg)
{if(m_toolTip.GetSafeHwnd()){m_toolTip.RelayEvent(pMsg);} return CListCtrl::PreTranslateMessage(pMsg);
}
CToolTipCtrl 如何换行
Tooltip中由一个方法叫做SetMaxTipWidth,MSDN中的描述说是设定Tips窗口的最大宽度,然后就没了。
其实这个方法是使用SDK中的TTM_SETMAXTIPWIDTH 消息,查一下这个消息的描述,就会发现很多内容。
1. 这个方法是设定Tips窗口的最大宽度,in pixel;
2. 如果文字超过这个最大宽度,则control进行自动换行,以空格为换行标志;
3. 如果无法换行(没有空格或\r\n),则显示一行,宽度超过最大宽度。
还有很重要的一点,如果没有设定过宽度,则系统默认宽度为-1,这也是没有设定宽度就不能换行的原因。
试验结果:
1. 一旦设定宽度,\r\n和空格就会同时起作用,只是空格是在一行宽度超过设定宽度时起作用的。
给按钮、静态文本 CListCtrl等添加功能提示(tollTip)功能相关推荐
- MFC_C++02_模态对话框,非模态对话框,StaticText静态文本,CEditCtrl控件,ComboBox下拉框,CListCtrl控件,CTreeCtrl 树控件,TabCtrl标签控件
01 模态对话框创建 更改标题名: 菜单栏 --> 视图->工具箱 ,找到工具箱 导入两个按钮: 准备对话框: 插入就可以了,更改名称 双击按钮,可以进入点击事件 创建控件的类:右击-&g ...
- windows api实现窗口、按钮、静态文本框透明显示
1.需求 (1)实现一个无边框的窗口,不需要窗口能够拖动,不需要放大缩小按钮,但是需要右上角的关闭按钮: (2)静态文本框背景透明,显示的文字能够频繁刷新并且不能够有重影: 2.实现方式 2.1无边框 ...
- js显示PHP源代码命令,layedit富文本编辑器中如何添加显示源码功能(代码)
本篇文章给大家带来的内容是关于layedit 富文本编辑器中如何添加显示源码功能(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 由于项目需要用到富文本编辑器,并且要有显示源码 ...
- 【MATLAB】在MATLAB中利用GUI编写加法计算器,要求:通过两个编辑文本框实现两个数字的输入,点击“开始计算”按钮进行计算,并在用于结果显示的静态文本框中实现两输入数字的和的显示
1)打开Matlab,点击工具栏上的[File]–>New–>GUI,命名为:addnum.fig 2)在addnum.fig面板里,拖曳3个静态文本TXT控件(不做任何修改).3个编辑 ...
- 改变静态文本notify 属性_Animate/FLASH如何用按钮改变元件属性(AS3)
在FLASH中,对于影片剪辑或按钮或位图,都有各种属性,如透明度\可见性\坐标\大小\缩放值等等,这里就使用按钮对影片剪辑的几种属性进行设置,以得到相应的变化. 适用软件:Animate CC及支持A ...
- 文本显示器-静态文本控件功能一览
静态文本显示控件的功能基本定型了. 顾名思义,静态文本就是显示预先设定好的静态文本字符串. 字符串可以支持任意字符,可以在任意位置显示. 字符串水平方向支持 左/中/右三种对齐方式. 垂直方向支持 上 ...
- flex html 控制编辑,在富文本编辑器中添加Tab键功能(Flex 3)
我试图在使用事件keyDown的富文本编辑器中添加Tab键功能.只需要清楚,在标签键上,我需要将控件保留在前面带有'\ t'空格的同一个文本框中,而不是跳到下一个对象.我尝试的下面的代码完全适用于te ...
- Django框架项目——BBS项目介绍、表设计、表创建同步、注册、登录功能、登录功能、首页搭建、admin、头像、图片防盗、个人站点、侧边栏筛选、文章的详情页、点赞点踩、评论、后台管理、添加文章、头像
文章目录 1 BBS项目介绍.表设计 项目开发流程 表设计 2 表创建同步.注册.登录功能 数据库表创建及同步 注册功能 登陆功能 3 登录功能.首页搭建.admin.头像.图片防盗.个人站点.侧边栏 ...
- MFC静态文本控件设置超链接
有时我们需要在窗口上设置一个超链接,比如在Aboutdlg上设置"我的博客"这样的超链接.具体的设置方法如下. 1.首先我们在窗体上添加一个Static文本控件,修改Caption ...
最新文章
- final修饰的变量是引用不能改变还是引用的对象不能改变
- js实现promise.all promise.race promise.resolve
- BZOJ 3740. 【TJOI2014】电源插排
- VBA中的字符串处理
- 消息已读未读的模型设计_阿里云技术专家分享:现代 IM 系统中消息推送和存储架构的实现...
- 32-bit ARM的 word halfword byte
- xp sp3不让dword shoot
- 【大数据】大数据-实时统计分析-方案选型
- 刘冲 擦干你的泪水 试听,刘冲 擦干你的泪水歌词
- 浏览器打开时总是hao123.com的网站解决办法
- 怒怼|扎克伯格到底是个怎样的人
- IOS 关闭键盘 退出键盘 的5种方式
- [置顶] 程序员的奋斗史(二十八)——寒门再难出贵子?
- linux下面实现检测按键(Linux中kbhit()函数的实现)
- 第53章 SQL GROUP BY 语句教程
- 如何讲好一个故事?--白岩松西湖大学讲座
- [Nikon D80]春芽
- AI首席架构师6-AICA-从数据到知识-百度知识图谱技术及应用
- 防火墙工作在哪一层_简单概括下一代防火墙和传统防火墙的区别:“下一代”不只是说说而已...
- Docker进阶篇之DockerFile,教你用DockerFile构建镜像