VC/MFC 在ListCtl 控件中随鼠标移动提示单元格信息

[cpp] view plaincopy

 

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

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

mfc-怎样在MFC的listbox控件中显示数据库的表

问题描述 怎样在MFC的listbox控件中显示数据库的表 在listbox控件中显示数据库中已经存在的表,代码该怎么写,初学菜鸟请教各位~(≧▽≦)/~啦啦啦 解决方案 参考:http://download.csdn.net/detail/qkill/5867135 解决方案二: 这个问题应该分为两部分来分析(1)是读取数据库(2)将读取到的数据显示在 List 中不知道你是哪部分不清楚?显示数据在 List 很简单的,调用 List 的 Insert 成员就可以完成数据增加到 List 中.

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

以下是对c#中如何在form的webbrowser控件中获得鼠标坐标的实现方法进行了详细的分析介绍,需要的朋友可以参考下   如图这样,其实是要插入一个time的控件,这样才能使得坐标值会根据鼠标的移动而不停变化.time插件中写 复制代码 代码如下: private void timer1_Tick(object sender, EventArgs e)         {             if (webBrowser1.Bounds.Contains(this.PointToClie

vc++-MFC的slider控件左右微调箭头问题

问题描述 MFC的slider控件左右微调箭头问题 之前做IEC61131-3规范的软件系统,同时是MFC新手!遇到slider控件方面的问题,不知道能不能让滑动条左右有用来微调的箭头,方法越简单越好,请老师们帮忙!本人C币没多少,下资料用的,悬赏很低请见谅!参考图片: 解决方案 用Scrollbar代替Slider 解决方案二: 简单的就是放两个按钮,然后根据按钮事件,自己代码调整slider的位置.

在树型控件中移动鼠标产生字体及颜色的变化

在Windows XP中资源管理器左侧显示目录树结构时,当在项目中移动鼠标的时候,项目标签 的文字的字体和颜色会产生变化,使目录的选择非常醒目.本人在学习制作Windows98的资源管 理器的过程中,加入了相似的功能,其基本思路是:在与TreeCtrl控件关联的类(CDirTreeCtrl) 中重载鼠标移动消息函数,设置相关的文本的颜色参数,在WM_PAINT消息映射函数定义的设备 环境中改变逻辑字体属性(由LOGFONT结构描述)并使用设置的字体,达到项目字体变动的目的. 具体内容如下: 1>

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

如图这样,其实是要插入一个time的控件,这样才能使得坐标值会根据鼠标的移动而不停变化.time插件中写private void timer1_Tick(object sender, EventArgs e)         {             if (webBrowser1.Bounds.Contains(this.PointToClient(Cursor.Position)))             {                                  this.t

VC/MFC 使edit控件不能进行粘贴操作

[cpp] view plaincopy   这里使用消息拦截的方法   [cpp] view plaincopy   BOOL PersonDlg::PreTranslateMessage(MSG* pMsg)   {       if (GetDlgItem(IDC_EDIT_USER_ID)->m_hWnd == pMsg->hwnd ||           GetDlgItem(IDC_EDIT_USER_NAME)->m_hWnd == pMsg->hwnd ||  

获取input表签的值-在webbrowser控件中获取文本框的值

问题描述 在webbrowser控件中获取文本框的值 复制授权码 请问高手们怎么才能获取到input标签的值呢 相关文章 javaweb-value为空,如何获取文本框的值? javascript-在js中 如何用Jquery 获取一个文本框中的值 文本框中ID=A js文本框-js获取文本框的值,有默认值 javascript-如何获取HTML网页密码输入框的值? jquery怎么让循环的两个文本框的值相加 servlet-想通过href链接传递文本框的值,该怎么得到文本框的值 textbox

如何更新vc列表控件中的数据

问题描述 如何更新vc列表控件中的数据 我建立了一个基于对话框的MFC,三个对话框-一个主对话框,一个往列表控件添加数据的Add对话框,一个修改列表控件数据的Edit对话框,怎么实现Edit对话框中修改的数据在主对话框展现呢? 解决方案 可以为listctrl控件添加一个CListCtrl类型的变量 m_list;int nIndex =(int)m_list.GetFirstSelectedItemPosition() - 1; //获取选中列行号.然后通过m_list.SetItemText

MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

        最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序,这里介绍两种在对话框picthre控件中显示BMP图片的最简单基础的方法.       ~~方法可能并不完美,高手忽略,但是提供一种能运行的方法,希望对刚接触这方面知识的同学有所帮助.可能你觉得文章过于简单或者有些过于详细叙述(点到即可我并不反对),但也为哪些入门同学想想,当初自己也是一头雾