VC++ ToolTip的简单使用
1、在基于对话框的MFC应用程序中使用Tooltip,首先在Dlg类的头文件中定义一个变量:
CToolTipCtrl m_iToolTips;
2、在Dlg类的OnInitDialog中添加代码:
EnableToolTips(TRUE);m_iToolTips.Create(this);m_iToolTips.Activate(TRUE);m_iToolTips.SetDelayTime(150);m_iToolTips.AddTool(GetDlgItem(IDC_BTN_SELECT), _T("选择ocx/dll控件"));m_iToolTips.AddTool(GetDlgItem(IDC_EDIT_OCX_PATH), _T("ocx/dll控件路径"));m_iToolTips.AddTool(GetDlgItem(IDC_BTN_REGISTER), _T("注册"));m_iToolTips.AddTool(GetDlgItem(IDC_BTN_UNREGISTER), _T("反注册"));m_iToolTips.AddTool(GetDlgItem(IDC_BTN_ISREGISTED), _T("是否注册"));m_iToolTips.SetTipBkColor(RGB(255,255,255)); //背景色为白色m_iToolTips.SetTipTextColor(RGB(0,0,0)); //字体颜色为黑色
3、重载PreTranslateMessage函数
BOOL CControlRegisterDlg::PreTranslateMessage( MSG* pMsg ){switch(pMsg->message){case WM_MOUSEMOVE:m_iToolTips.RelayEvent(pMsg);break;default:break;}return CDialog::PreTranslateMessage(pMsg);}
4、编译运行
ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl。
CToolTipCtrl是用来显示单行文本的弹出框,可以给继承自CFrameWnd(提供了一个缺省的TTN_NEEDTEXT消息处理函数)的Windows控件添加一些提示信息。要使用它,包含3个步骤:
- Enabling Tool Tips
- Handling TTN_NEEDTEXT Notification for Tool Tips
- The TOOLTIPTEXT Structure
也就是说:
第一步需要先打开这个功能(Tool Tips)。EnableToolTips
第二步需要处理TTN_NEEDTEXT消息,并不是必须的。
第三步是利用TOOLTIPTEXT结构体提供的信息,设置提示内容。AddTool
CToolTipCtrl控件提供的功能只限于文本显示相关操作,对于复杂的ToolTip功能该控件可能满足不了要求,所以需要自定义ToolTips控件。
相关实现可参考:https://www.codeproject.com/Articles/18382/Custom-ToolTips-for-MFC-Projects
补充:上述基本使用对于模态对话框正常,但是对于非模态对话框,PreTranslateMessage函数并没有被调用,那么非模态对话框如何响应PreTranslateMessage函数呢?使用钩子函数来实现:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
class CMyApp : public CWinApp
{ public: BOOL InitInstance(); int ExitInstance(); static LRESULT CALLBACK GetMessageProc(int nCode, WPARAM wParam, LPARAM lParam); }; LRESULT CALLBACK CMyApp::GetMessageProc(int nCode, WPARAM wParam, LPARAM lParam) if(AfxGetApp()->PreTranslateMessage(lpMsg)) // Passes the hook information to the next hook procedure in the current hook chain. BOOL CMyApp::InitInstance() ASSERT(m_hHook); return bInit; int CMyApp::ExitInstance() |
转载于:https://www.cnblogs.com/MakeView660/p/6814339.html
VC++ ToolTip的简单使用相关推荐
- C#窗体设计中ToolTip的简单用法
本文介绍C#窗体设计中ToolTip的简单用法. 操作流程 1.1. ToolTip信息提示框作用 C#中提供了信息提示框,这有很多用处,可以提示控件或者用户自定义的属性信息,而且可以自动弹出或者用户 ...
- VC环境下简单的贪吃蛇
下午真无聊的不知道干什么了,翻翻自己以前写的代码,偶然看到大一时写的这个简单的贪吃蛇,自己玩了几把后还是决定发到博客吧.(实在无聊,打发时间) 注:完全基于VC++6.0环境,不支持Linux 下te ...
- VC++ 拖放编程简单Demo
微软的编程类库都带有拖放编程的接口:下面看一个最简单demo:win7, vc6:新建一个对话框工程: 添加一个列表框控件:设置 接受文件 属性: 在 类向导-Class Info 做如下选择: 为W ...
- VC++环境OpenSSL简单编程入门
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份. SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在 ...
- vc++栈的简单实现
栈的数据类型是先进后出 1 #ifndef __MYSTACK__ 2 #define __MYSTACK__ 3 #include <Windows.h> 4 typedef struc ...
- VC DataGrid控件使用总结
MS CDataGrid控件用法详解 本文示例源代码或素材下载 .DataGrid控件是VC方便地用来显示数据的一个极好的网格控件,我不否认网上还有期它不少优秀的网格控件,但我总喜欢使用微软自已的东西 ...
- c 调用易语言dll字节集,总结VC与易语言DLL互相调用的方法
在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在易语言中如何调用VC编写的DLL呢,首先用VC编写一个简单的DLL文件,代码如下: int WINAPI add(int x,i ...
- win32 socket的一个简单的例子 控制台
在visual c++里建两个win32控制台工程,分别编译下面的服务端和客户端 服务端: [cpp] view plaincopyprint? #include <windows.h&g ...
- 预警展示样式html,纯css3 Tooltip工具提示样式
microtip.css是一款纯css3 Tooltip工具提示样式.microtip.css不用依赖任何js文件,就可以生成时尚的Tooltip效果.它是轻量级的,压缩后的版本小于1kb. 安装 可 ...
最新文章
- R语言dplyr包获取dataframe分组聚合汇总统计值实战(group_by() and summarize() ):均值、中位数、分位数、IQR、MAD、count、unique
- easyui-layout中的收缩层无法显示标题问题解决
- XamarinSQLite教程添加列
- 团队作业6——展示博客(Alpha版本)
- Spark集群的启动日志
- delphi 最全日期格式_DateUtils时间单元说明
- 软件架构(6)---软件架构设计的过程
- matlablib显示图片
- 【51单片机】按键控制多个舵机(可用于机械臂控制)
- Processing介绍及几个python模式下的案例
- 利用神经网络预测股票价格走势
- ROS学习笔记-用脚本发布cmd_vel话题
- c语言实验步骤与过程,实验一 C语言的运行环境和运行过程
- 机器学习——支持向量机(SVM)之超平面、间隔与支持向量
- Linux下C语言实现TCP文件传输
- python提取前几行数据_python读取文件的前几行
- [闲聊]随时汲取眼前所见色彩的蓝牙绘图笔ColorPillar
- java spark 朴素贝叶斯算法(naive-bayes)
- 天勤数据结构笔记——第六章 树与二叉树(代码)
- 基于element-upload的自定义图片裁剪上传
热门文章
- mysql数据库主要负责存储_MySQL默认数据库简介
- 金融计算器 npv_一个工具箱 之 净现值(NPV)计算器
- java ora 00911_ORA-00911错误
- mysql数据库的事物日志在哪里_mysql数据库中事务日志的作用
- 支持向量机python代码_支持向量机及python实现(一)
- if else语句_你敢信?if语句执行完,竟然也会执行else语句
- 新电脑怎么分盘_2020双十一预算一万该怎么组装电脑(含显示器)新媒体,视频剪辑等影视专业装机指南...
- python中start用法_Start Python 学习笔记(琐碎知识,持续更新。。。)
- 计算机安装与维修 等级,电脑升级究竟要怎么升级?维修多年的老师傅说出其中答案!...
- find vba 模糊_VBA积木代码方案:实现多重查找、模糊查找、清除值