1. BEGIN_MESSAGE_MAP(CTipListCtrl, CListCtrl)
  2. //{{AFX_MSG_MAP(CTipListCtrl)
  3. ON_WM_MOUSEMOVE()
  4. ON_WM_DESTROY()
  5. //}}AFX_MSG_MAP
  6. END_MESSAGE_MAP()
  7. /////////////////////////////////////////////////////////////////////////////
  8. // CTipListCtrl message handlers
  9. void CTipListCtrl::OnMouseMove(UINT nFlags, CPoint point)
  10. {
  11. // TODO: Add your message handler code here and/or call default
  12. if(m_bEnableTips)
  13. {
  14. CString str;
  15. LVHITTESTINFO lvhti;
  16. // 判断鼠标当前所在的位置(行, 列)
  17. lvhti.pt = point;
  18. SubItemHitTest(&lvhti);
  19. // 如果鼠标移动到另一个单元格内, 则进行处理; 否则, 不做处理
  20. if((lvhti.iItem != m_nItem) || (lvhti.iSubItem != m_nSubItem))
  21. {
  22. // 保存当前鼠标所在的(行,列)
  23. m_nItem = lvhti.iItem;
  24. m_nSubItem = lvhti.iSubItem;
  25. // 如果鼠标移动到一个合法的单元格内,则显示新的提示信息
  26. // 否则, 不显示提示
  27. if((m_nItem != -1) && (m_nSubItem != -1))
  28. {
  29. // @@@@@@@@ 在这里修改要显示的提示信息
  30. // 这里仅仅是一个例子---获得当前单元格的文字信息, 并设置为新的提示信息
  31. str = GetItemText(m_nItem ,m_nSubItem);
  32. m_toolTip.AddTool(this, str);
  33. // 显示提示框
  34. m_toolTip.Pop();
  35. }
  36. else
  37. {
  38. m_toolTip.AddTool(this, _T("双击记录可查看人员详细信息并对其修改"));
  39. // 显示提示框
  40. m_toolTip.Pop();
  41. }
  42. }
  43. }
  44. CListCtrl::OnMouseMove(nFlags, point);
  45. }
  46. BOOL CTipListCtrl::PreTranslateMessage(MSG* pMsg)
  47. {
  48. // TODO: Add your specialized code here and/or call the base class
  49. if(::IsWindow(m_toolTip.GetSafeHwnd()))
  50. {
  51. m_toolTip.RelayEvent(pMsg);
  52. }
  53. return CListCtrl::PreTranslateMessage(pMsg);
  54. }
  55. void CTipListCtrl::OnDestroy()
  56. {
  57. CListCtrl::OnDestroy();
  58. // TODO: Add your message handler code here
  59. // listctrl销毁时, 同时销毁 tooltipctrl
  60. m_toolTip.DestroyWindow();
  61. m_toolTip.Detach();
  62. }
  63. BOOL CTipListCtrl::EnableTips()
  64. {
  65. EnableToolTips(TRUE);
  66. // 创建tooltip控件
  67. m_bEnableTips = m_toolTip.Create(this, TTS_ALWAYSTIP);
  68. if(m_bEnableTips)
  69. {
  70. m_toolTip.Activate(TRUE);
  71. m_toolTip.SetDelayTime(TTDT_INITIAL, 0);
  72. }
  73. return m_bEnableTips;
  74. }

VC/MFC 在ListCtl 控件中随鼠标移动提示单元格信息的更多相关文章

  1. VC MFC工具栏(CToolBar)控件

    一.工具栏 工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创 ...

  2. VC MFC工具栏(CToolBar)控件(转)

    工具栏 工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创建, ...

  3. vc++,MFC,组合框控件设置时0xC0000005: 读取位置 0x00000020 时发生访问冲突

    511.exe 中的 0x78bb5dec (mfc90ud.dll) 处未处理的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突 _AFXWIN_INLINE int ...

  4. 在WPF的WebBrowser控件中屏蔽脚本错误的提示

    在WPF中使用WebBrowser控件显示网页时,经常会报脚本错误的提示,如何屏蔽掉这些错误提示呢.方法是定义如下方法: public void SuppressScriptErrors(WebBro ...

  5. [c#]如何在form的webbrowser控件中获得鼠标坐标

    如图这样,其实是要插入一个time的控件,这样才能使得坐标值会根据鼠标的移动而不停变化.time插件中写private void timer1_Tick(object sender, EventArg ...

  6. 帆软中使用switch将控件的显示值“传递”给单元格

    如下图,控件的实际值和显示值是我们自定义的. 当我们选择控件时,想要在某个单元格内显示控件的显示值.一般我们在单元格内直接 $控件名  可以获得控件值.比如当我们选择事故数时,我们自然不能在单元格内直 ...

  7. 在TextBox控件中禁用鼠标右键

    实现效果: 知识运用: MouseEventArgs类的Button属性     TextBox控件的ContextMenu属性 实现代码: private void textBox1_MouseDo ...

  8. c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index ...

  9. 转:c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index  ...

随机推荐

  1. 富文本编辑器 - wangEditor 上传图片

    效果: . 项目结构图: wangEditor-upload-img.html代码: <html> <head> <title>wangEditor-图片上传< ...

  2. WinForm - 格式化DataGridView单元格数据

    效果: 代码: /// <summary> /// 格式化数据 /// </summary> private void dataGridView1_CellFormatting ...

  3. c语言,链表

    #include "stdafx.h" #include <stdio.h> #include <stdlib.h> struct Node{ struct ...

  4. xmlns:android="http://schemas.android.com/apk/res/android的作用是

    xmlns:android="http://schemas.android.com/apk/res/android的作用是 这个是xml的命名空间,有了他,你就可以alt+/作为提示,提示你 ...

  5. Qt中Ui名字空间以及setupUi函数的原理和实现

    用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢, ...

  6. solr总结 第六部分:solr查询语法

    1.基本查询语法 q:全文查询.schema.xml里面定义了如下两块.eg q=ibm即表示org_name或者org_weisite里面出现ibm的document都可以被匹配到.KeyWords ...

  7. perl 回调函数

    在计算机程序设计中,回调函数,或简称回调(Callback),是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 没啥不好理解的呀,就是向函数的参 ...

  8. 基于visual Studio2013解决面试题之1307二分查找

     题目

  9. 基于visual Studio2013解决C语言竞赛题之1038数字验证

          题目 解决代码及点评 /********************************************************************** ...

  10. 组件接口(API)设计指南[4]-通知(Notifications)

    *返回文件夹阅读其它章节: http://blog.csdn.net/cuibo1123/article/details/39894477 通知(Notifications) 通知是托付协议的还有一半 ...