MFC中控制Tips的显示 - lingyun1120
from: http://www.cnblogs.com/lingyun1120/archive/2011/11/09/2243279.html
MFC中为ToolTips生成了一个类CToolTipCtrl,一般使用步骤如下:
1、 添加CToolTipCtrl成员变量
2、在父窗口中调用EnableToolTips(TRUE);
3、在窗口的OnCreate或者Dlg的OnInitialDlg中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串
CToolTipCtrl::AddTool()
4、 重载父窗口的 BOOL PreTranslateMessage(MSG* pMsg) ,在函数中调用CToolTipCtrl成员变量的RelayEvent()
正常情况下,经过上面的四步,当鼠标移动到窗口上时自动显示tips信息。如果想控制tips在满足一定条件下显示,该如何处理呢?可以通过以下方式实现:
m_toolTipsCtrl.UpdateTipText(_T("大写锁定打开可能造成密码设置错误"), pFocusWnd);
CToolInfo sTinfo; // 提示信息
m_toolTipsCtrl.GetToolInfo(sTinfo, pFocusWnd);
sTinfo.uFlags = TTF_TRACK; // 显示方式设置
m_toolTipsCtrl.SetToolInfo(&sTinfo);
// 下面是关键两步
m_toolTipsCtrl.SendMessage(TTM_TRACKPOSITION, 0, (LPARAM)MAKELONG(rect.left, rect.bottom));
m_toolTipsCtrl.SendMessage(TTM_TRACKACTIVATE, TRUE, (LPARAM)&sTinfo ); // tips显示
另外,通过Activate控制tips的有效性,这样就可以完全控制tips的显示,比如大写提示信息等。
列子:
case WM_RBUTTONDOWN:
GetCursorPos(¤tposition);
// Prepare TOOLINFO structure for use as tracking ToolTip.
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_IDISHWND | TTF_TRACK | TTF_ABSOLUTE;
ti.hwnd = m_thiswnd;
ti.uId = (UINT)m_thiswnd;
ti.hinst = ghinst;
ti.lpszText = "右健 ";
ti.rect.left = ti.rect.top = ti.rect.bottom = ti.rect.right = 0; // Add the tool to the control, displaying an error if needed.
SendMessage(ToolTipWnd,TTM_ADDTOOL,0,(LPARAM)&ti);
SendMessage(ToolTipWnd,TTM_TRACKPOSITION,0,
(LPARAM)MAKELPARAM(currentposition.x+15,currentposition.y+15));
SendMessage(ToolTipWnd,TTM_UPDATETIPTEXT,0,(LPARAM)&ti);
SendMessage(ToolTipWnd,TTM_TRACKACTIVATE,(WPARAM)TRUE,(LPARAM)&ti);
SendMessage(ToolTipWnd,TTM_SETDELAYTIME,TTDT_AUTOPOP, (LPARAM)(INT) MAKELONG(1000,0));
MFC中控制Tips的显示 - lingyun1120的更多相关文章
- js中控制小数点的显示位数的技术整理
js中自带方法控制小数点的显示位数(四舍五入) alert((12.9299).toFixed(2)); //12.93 alert((12.9243).toFixed(2)); //12.92 小数 ...
- Confluence 6 在编辑器中控制参数的显示
你可以决定宏参数在 Confluence 编辑器中如何进行显示的. 在默认的情况下,在宏占位符下尽可能显示能显示的所有参数: 你可以控制这里显示的参数数量,通过这种控制你可能尽量的为编辑者提供有效的信 ...
- react中控制元素的显示与隐藏
1.通过 state 变量来控制是否渲染元素 类似于 vue 的 v-if 方法是通过变量来控制是否加载元素的,如果变量为false,内容就直接不会渲染的. class Demo extends Re ...
- 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题
当 Pie Chart 页面标签过多的时候,往往数字标签内容挤做一团.我们要做的是:第一,让标签在饼图外部显示:第二,不让标签重叠. 一种做法是通过修改数字标签属性 - Series Label Pr ...
- MFC中控制COMBOBOX控件的下拉框高度
这是使用Visual Stiduo的小技巧哦.今天上网找来的.在界面设计面板上,点击ComboBox的下拉箭头,会另外出现一个虚边框.可以调整其大小.这个就是实现运行的时候下拉边框的默认值啦.
- Android中如何控制元素的显示隐藏?
在Android程序中,有时需要程序开启时默认隐藏某个控件,当单击某个按钮时才触发显示控件的内容.比如在查询员工资料时,提交查询后再显示查询到的表格内容: Android中控制元素的隐藏参考以下代码. ...
- MFC中状态栏显示鼠标坐标位置
原文:MFC中状态栏显示鼠标坐标位置,蝈蝈 1,利用MFC向导创建一个应用工程ewq. 2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point. ...
- GridControl 控制列中的控件显示
一.需求描述 根据条件判断Checkbox的显示,先上个图,, 类似Demo中的这个,因为不能控制文本的显示,所以需对该列的其它事件做些处理, 二.解决方案 1.添加GridControl上需要的控 ...
- 简简单单,jquery中,使用checkbox控制div的显示与隐藏
今天开发代码时,发现好久不用jquery就生疏了. 所以作这个记录, 使用checkbox控制div的显示与隐藏. 一,html代码处: <input type="checkbox&q ...
随机推荐
- boot空间不足,删除Ubuntu旧内核
0 Problem 今天打开电脑的时候ubuntu提示boot空间不足.查了资料,原来Ubuntu的自动升级并没有删除系统的旧内核,于是boot下旧的内核文件越积越多,最后就满了. 1 Solutio ...
- spring boot集成redis缓存
spring boot项目中使用redis作为缓存. 先创建spring boot的maven工程,在pom.xml中添加依赖 <dependency> <groupId>or ...
- qplot()函数的详细用法
qplot()函数的详细用法: library(ggplot2) # 测试数据集,ggplot2内置的钻石数据qplot(carat, price, data = diamonds)dsmall &l ...
- PHP 错误日志/安全配置
PHP 常用配置 /php/bin/php -i | head Loaded Configuration File => /php/etc/php.ini 查看php配置目录 vim /usr/ ...
- zabbix监控php-fpm的性能
zabbix监控php-fpm主要是通过nginx配置php-fpm的状态输出页面,在正则取值 要nginx能输出php-fpm的状态必须要先修改php-fpm的配置,这个配置没有开启nginx 就没 ...
- 2018-2019-2 20165114《网络对抗技术》Exp4 恶意代码分析
Exp4 恶意代码分析 目录 一.实验目标 (1)监控你自己系统的运行状态,看有没有可疑的程序在运行. (2)分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sys ...
- react 关于this.setState使用时,第一次无法获取数据,第二次获取的数据是第一次触发的疑问
我使用的是antd组件, compareClickFn(orderCodes, fileNames) { printLog("orderCodes----------"+ orde ...
- ngnix进阶
ngnix进阶 nginx: [warn] duplicate MIME type "text/html" in /usr/local/nginx/conf/nginx.conf: ...
- Shell awk 求标准差
cat > temp000180255798957892187719 awk '{x[NR]=$0; s+=$0; n++} END{a=s/n; for (i in x){ss += (x[i ...
- LeetCode——Keyboard Row
LeetCode--Keyboard Row Question Given a List of words, return the words that can be typed using lett ...