MFC/VC中当鼠标停靠在按钮等控件上时出现文字提示功能

2024-01-22 07:08

本文主要是介绍MFC/VC中当鼠标停靠在按钮等控件上时出现文字提示功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载来自:http://blog.csdn.net/dongganxiao_maidou/article/details/52784918

该功能的实现主要是用CToolTipCtrl类。该类在VC  msdn中有详细说明。
首先在对话框的头文件中加入初始化语句:public:下,加入:CToolTipCtrl    m_stat;
然后在初始化对话框函数中加入:(注:我开始在OnCreate函数中加的这段代码,发现有AddTool那句程序运行就出错,不知道为什么。。然后把这段放在初始化函数,就没错了)
m_stat.Create(this);  
m_stat.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" ); //IDC_BUTTON为你要添加提示信息的按钮的ID
 //m_stat.SetDelayTime(200); //设置延迟,如果为0则不等待,立即显示
//m_stat.SetTipTextColor( RGB(0,0,255) ); //设置提示文本的颜色
//m_stat.SetTipBkColor( RGB(255,255,255)); //设置提示框的背景颜色

//m_stat.SetMaxTipWidth(600);//设置文本框的最大宽度,注意里边的数值单位为像素,所以要通过不断测试来选定最理想的宽度。利用此句可显示多行
m_stat.Activate(TRUE); //设置是否启用提示

然后在类向导中添加PreTranslateMessage消息响应函数
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
  m_stat.RelayEvent(pMsg); 
return CDialog::PreTranslateMessage(pMsg);
}
注:1.如果要为多个按钮添加功能提示只需在
          m_stat.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" );
          的下面再加上类似语句,如
          m_stat.AddTool( GetDlgItem(IDC_BUTTON1), "你想要添加的提示信息1" );
          m_stat.AddTool( GetDlgItem(IDC_BUTTON2), "你想要添加的提示信息2" );

      2.上面这个是按钮,然后我同样想显示picture控件的提示信息时,发现按上面的步骤没反应,后来网上查了在picture控件属性里把Notify这个属性打勾,就显示内容了。其他控件不知道是不是这样,有待验证。

      3.如果想在需要显示的时候显示提示,可以使用m_tooltip.Activate(TRUE);函数,但发现如果已经是TRUE了,再Activate,提示框就不显示了,此时可以调用m_tooltip.UpdateTipText(str,GetDlgItem(IDC_BUTTON));更新一下要显示内容,虽然内容可能没有变,然后再Activate(TRUE)就能正常显示了。

      4.当需要显示多行提示信息时,直接用“\n”拼接字符串并不能达到效果,需要添加这句m_stat.SetMaxTipWidth(600);并设置合适的宽度,这样用“\n”来拼接字符串就能显示多行信息。


补充一下添加BMP图: 1、添加BMP图资源,并添加picture控件,属性改为BMP

                                      2、初始化函数中添加:

                                      HBITMAP hBitmap; 
                                      hBitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BMP_TRAIN)); //BMP图ID号
                                      m_Trainp1.SetBitmap(hBitmap);

                                      GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);//隐藏图片 ShowWindow(SW_SHOW)是显示图片


这篇关于MFC/VC中当鼠标停靠在按钮等控件上时出现文字提示功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/632210

相关文章

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开