(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)功能相关推荐

  1. MFC_C++02_模态对话框,非模态对话框,StaticText静态文本,CEditCtrl控件,ComboBox下拉框,CListCtrl控件,CTreeCtrl 树控件,TabCtrl标签控件

    01 模态对话框创建 更改标题名: 菜单栏 --> 视图->工具箱 ,找到工具箱 导入两个按钮: 准备对话框: 插入就可以了,更改名称 双击按钮,可以进入点击事件 创建控件的类:右击-&g ...

  2. windows api实现窗口、按钮、静态文本框透明显示

    1.需求 (1)实现一个无边框的窗口,不需要窗口能够拖动,不需要放大缩小按钮,但是需要右上角的关闭按钮: (2)静态文本框背景透明,显示的文字能够频繁刷新并且不能够有重影: 2.实现方式 2.1无边框 ...

  3. js显示PHP源代码命令,layedit富文本编辑器中如何添加显示源码功能(代码)

    本篇文章给大家带来的内容是关于layedit 富文本编辑器中如何添加显示源码功能(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 由于项目需要用到富文本编辑器,并且要有显示源码 ...

  4. 【MATLAB】在MATLAB中利用GUI编写加法计算器,要求:通过两个编辑文本框实现两个数字的输入,点击“开始计算”按钮进行计算,并在用于结果显示的静态文本框中实现两输入数字的和的显示

    1)打开Matlab,点击工具栏上的[File]–>New–>GUI,命名为:addnum.fig  2)在addnum.fig面板里,拖曳3个静态文本TXT控件(不做任何修改).3个编辑 ...

  5. 改变静态文本notify 属性_Animate/FLASH如何用按钮改变元件属性(AS3)

    在FLASH中,对于影片剪辑或按钮或位图,都有各种属性,如透明度\可见性\坐标\大小\缩放值等等,这里就使用按钮对影片剪辑的几种属性进行设置,以得到相应的变化. 适用软件:Animate CC及支持A ...

  6. 文本显示器-静态文本控件功能一览

    静态文本显示控件的功能基本定型了. 顾名思义,静态文本就是显示预先设定好的静态文本字符串. 字符串可以支持任意字符,可以在任意位置显示. 字符串水平方向支持 左/中/右三种对齐方式. 垂直方向支持 上 ...

  7. flex html 控制编辑,在富文本编辑器中添加Tab键功能(Flex 3)

    我试图在使用事件keyDown的富文本编辑器中添加Tab键功能.只需要清楚,在标签键上,我需要将控件保留在前面带有'\ t'空格的同一个文本框中,而不是跳到下一个对象.我尝试的下面的代码完全适用于te ...

  8. Django框架项目——BBS项目介绍、表设计、表创建同步、注册、登录功能、登录功能、首页搭建、admin、头像、图片防盗、个人站点、侧边栏筛选、文章的详情页、点赞点踩、评论、后台管理、添加文章、头像

    文章目录 1 BBS项目介绍.表设计 项目开发流程 表设计 2 表创建同步.注册.登录功能 数据库表创建及同步 注册功能 登陆功能 3 登录功能.首页搭建.admin.头像.图片防盗.个人站点.侧边栏 ...

  9. MFC静态文本控件设置超链接

    有时我们需要在窗口上设置一个超链接,比如在Aboutdlg上设置"我的博客"这样的超链接.具体的设置方法如下. 1.首先我们在窗体上添加一个Static文本控件,修改Caption ...

最新文章

  1. final修饰的变量是引用不能改变还是引用的对象不能改变
  2. js实现promise.all promise.race promise.resolve
  3. BZOJ 3740. 【TJOI2014】电源插排
  4. VBA中的字符串处理
  5. 消息已读未读的模型设计_阿里云技术专家分享:现代 IM 系统中消息推送和存储架构的实现...
  6. 32-bit ARM的 word halfword byte
  7. xp sp3不让dword shoot
  8. 【大数据】大数据-实时统计分析-方案选型
  9. 刘冲 擦干你的泪水 试听,刘冲 擦干你的泪水歌词
  10. 浏览器打开时总是hao123.com的网站解决办法
  11. 怒怼|扎克伯格到底是个怎样的人
  12. IOS 关闭键盘 退出键盘 的5种方式
  13. [置顶] 程序员的奋斗史(二十八)——寒门再难出贵子?
  14. linux下面实现检测按键(Linux中kbhit()函数的实现)
  15. 第53章 SQL GROUP BY 语句教程
  16. 如何讲好一个故事?--白岩松西湖大学讲座
  17. [Nikon D80]春芽
  18. AI首席架构师6-AICA-从数据到知识-百度知识图谱技术及应用
  19. 防火墙工作在哪一层_简单概括下一代防火墙和传统防火墙的区别:“下一代”不只是说说而已...
  20. Docker进阶篇之DockerFile,教你用DockerFile构建镜像

热门文章

  1. Spring-Boot:5分钟掌握SpringBoot开发
  2. Android实现炫酷的星空变幻效果
  3. 数据库设计中的14个技巧
  4. OO第一单元作业总结
  5. 基于SSM的餐饮工业化管理系统-计算机毕业设计
  6. Confluence 6 下载和安装 MySQL 驱动
  7. jedis中scan的实现
  8. 发布Web应用程序时发生的“xx.aspx.cs文件不存在”错误
  9. SpringMVC Ueditor1.4.3 未找到上传数据
  10. Java设计模式—模板方法模式