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(&currentposition);
// 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的更多相关文章

  1. js中控制小数点的显示位数的技术整理

    js中自带方法控制小数点的显示位数(四舍五入) alert((12.9299).toFixed(2)); //12.93 alert((12.9243).toFixed(2)); //12.92 小数 ...

  2. Confluence 6 在编辑器中控制参数的显示

    你可以决定宏参数在 Confluence 编辑器中如何进行显示的. 在默认的情况下,在宏占位符下尽可能显示能显示的所有参数: 你可以控制这里显示的参数数量,通过这种控制你可能尽量的为编辑者提供有效的信 ...

  3. react中控制元素的显示与隐藏

    1.通过 state 变量来控制是否渲染元素 类似于 vue 的 v-if 方法是通过变量来控制是否加载元素的,如果变量为false,内容就直接不会渲染的. class Demo extends Re ...

  4. 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题

    当 Pie Chart 页面标签过多的时候,往往数字标签内容挤做一团.我们要做的是:第一,让标签在饼图外部显示:第二,不让标签重叠. 一种做法是通过修改数字标签属性 - Series Label Pr ...

  5. MFC中控制COMBOBOX控件的下拉框高度

    这是使用Visual Stiduo的小技巧哦.今天上网找来的.在界面设计面板上,点击ComboBox的下拉箭头,会另外出现一个虚边框.可以调整其大小.这个就是实现运行的时候下拉边框的默认值啦.

  6. Android中如何控制元素的显示隐藏?

    在Android程序中,有时需要程序开启时默认隐藏某个控件,当单击某个按钮时才触发显示控件的内容.比如在查询员工资料时,提交查询后再显示查询到的表格内容: Android中控制元素的隐藏参考以下代码. ...

  7. MFC中状态栏显示鼠标坐标位置

    原文:MFC中状态栏显示鼠标坐标位置,蝈蝈 1,利用MFC向导创建一个应用工程ewq. 2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point. ...

  8. GridControl 控制列中的控件显示

    一.需求描述 根据条件判断Checkbox的显示,先上个图,, 类似Demo中的这个,因为不能控制文本的显示,所以需对该列的其它事件做些处理,  二.解决方案 1.添加GridControl上需要的控 ...

  9. 简简单单,jquery中,使用checkbox控制div的显示与隐藏

    今天开发代码时,发现好久不用jquery就生疏了. 所以作这个记录, 使用checkbox控制div的显示与隐藏. 一,html代码处: <input type="checkbox&q ...

随机推荐

  1. iOS 手机截屏

    百度地图自带截图功能,可以截取路线列表,保存到本地.可是对比发现截下来的图片并不是app中看到的那样,截图中头部加入了搜索的起点和终点,每段路程的详细站点都已展开,而且图片会根据路线的长短自动判断图片 ...

  2. ASYNCAPI

    https://www.asyncapi.com Introduction AsyncAPI provides a specification that allows you to define Me ...

  3. JetBrains IntelliJ IDEA 15 Ultimate Edition版本激活破解

        由于JetBrains系列新版本注册激活发生了变化,所以原来的激活方式已经不能在使用. 只能用新的方式来破解了.此方式支持所有系列的新版版.包括IDEA15,PHPSTORM10,WEBSTO ...

  4. 增for语句内容

    #author:leon #"hello world!" for i in range(10): #循环十次,每一次循环赋一个0-9中的数字给i . print("--- ...

  5. 单元测试框架unittest,ddt

    unittest case.py 测试用例 suite.py 测试套件 loader.py 加载测试用例 run.py 执行测试用例 result.py 测试结果,测试报告 main mock 模拟测 ...

  6. 实验四Android开发

    实验四Java Android简易开发 实验准备 Android Studio 的下载: Android Studio 安装教程 在安装过程中的问题: 在下载了官网上的说明包含sdk的安装包之后找不到 ...

  7. authentication token manipulation error

    用户服务器中修改密码,输入passwd命令后,报错authentication token manipulation error   发生该错误原因是: 1.分区没有空间导致. 2./etc/pass ...

  8. geoserver源码学习与扩展——kml/kmz转shapefile文件

    geoserver通过工作空间Workspace-数据源DataStore-图层Layer管理地理数据,默认只支持shapefile格式的文件发布,不支持kml/kmz.csv的文件格式,所以存在将这 ...

  9. Softmax回归 softMax回归与logistic回归的关系

    简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签  可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分 ...

  10. Http请求原理与相关知识

    1.在浏览器地址栏输入URL,按回车后经过了哪些步骤  1-1. 浏览器向DNS服务器请求解析该URL中的域名及所对应的IP地址; 1-2. 解析出IP地址后,根据该IP地址和默认端口80与服务器建立 ...