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中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

Mybatis提示Tag name expected的问题及解决

《Mybatis提示Tagnameexpected的问题及解决》MyBatis是一个开源的Java持久层框架,用于将Java对象与数据库表进行映射,它提供了一种简单、灵活的方式来访问数据库,同时也... 目录概念说明MyBATis特点发现问题解决问题第一种方式第二种方式问题总结概念说明MyBatis(原名

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,