zoukankan      html  css  js  c++  java
  • 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. }  
  • 相关阅读:
    exiting pxe rom 无法启动
    nginx 动静分离
    tomcat apr 部署
    zabbix_agentd.conf配置文件详解
    Zabbix点滴记录
    zabbix监控haproxy
    Zabbix使用Omsa来监控Dell服务器的硬件状态
    Zabbix监控Zookeeper健康状况
    Redis 多数据库
    Zabbix实现自动发现端口并监控
  • 原文地址:https://www.cnblogs.com/lidabo/p/3701775.html
Copyright © 2011-2022 走看看