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

简介: [cpp] view plaincopy   BEGIN_MESSAGE_MAP(CTipListCtrl, CListCtrl)       //{{AFX_MSG_MAP(CTipListCtrl)       ON_WM_MOUSEMOVE()       ON_WM...
[cpp]  view plain copy
 
  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. }  
目录
相关文章
MFC更改窗口/对话框的背景颜色
MFC更改窗口/对话框的背景颜色
198 0
MFC更改窗口/对话框的背景颜色
MFC修改窗口背景颜色
MFC修改窗口背景颜色
281 0
PyQt5 技术篇-鼠标移动控件显示提示,Qt Designer控件提示设置方法。
PyQt5 技术篇-鼠标移动控件显示提示,Qt Designer控件提示设置方法。
1044 0
PyQt5 技术篇-鼠标移动控件显示提示,Qt Designer控件提示设置方法。
PyQt5 技巧篇-按钮竖排显示方法,Qt Designer设置按钮竖排显示。
PyQt5 技巧篇-按钮竖排显示方法,Qt Designer设置按钮竖排显示。
681 0
PyQt5 技巧篇-按钮竖排显示方法,Qt Designer设置按钮竖排显示。
|
安全
OCX控件避免弹出安全警告的类
1.要加一个头文件:         #include 2.在控件头文件中加入: 1 DECLARE_INTERFACE_MAP()2 BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety)3 STDMETHOD(GetInter...
917 0
VC轻松实现CTreeCtrl控件双击响应
这个陌生的指针类型常使初用树控件的编程者陷入迷茫之中。实际上我们完全不理会它,也可以实现树控件的双击响应,即在OnDblClkTree( )函数中调用树控件的成员函数CTreeCtrl::GetSelectedItem( )以获取树控件的子项句柄HTREEITEM,得到此句柄后,我们便可用下列成员函...
1382 0
|
C++
VC/MFC 当鼠标移到控件上时显示提示信息
VC/MFC 当鼠标移到控件上时显示提示信息 ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。
1647 0
|
C++ Windows 数据可视化
VC/MFC 工具栏上动态添加组合框等控件的方法
引言  工具条作为大多数标准的Windows应用程序的一个重要组成部分,使其成为促进人机界面友好的一个重要工具。通过工具条极大方便了用户对程序的操作,但是在由Microsoft Visual C++开发环境所创建的应用程序框架中的工具条只是一个简单的按钮的集合,在功能上也仅仅是起到了菜单快捷方式的作用,而没有做到象VC、Word等软件的工具条那样,提供多种不同类型的标准控件如组合框、编辑框等。
1822 0