CListCtrl实现tooltip信息提示

CListCtrl实现tooltip信息提示当鼠标移动到CListCtrl的某一行时,提示一些信息。具体实现方法:1、头文件定义CToolTipCtrlm_tooltip;2、在OnInitDialog()中进行初始化EnableToolTips(TRUE);   m_tooltip.Create(this);   m_tooltip.SetMaxTipWidth(500);   m_tooltip.Act…

大家好,又见面了,我是你们的朋友全栈君。

当鼠标移动到CListCtrl的某一行时,提示一些信息。

具体实现方法:

1、头文件定义

CToolTipCtrl m_tooltip;

2、在OnInitDialog()中进行初始化

EnableToolTips(TRUE);
    m_tooltip.Create(this);
    m_tooltip.SetMaxTipWidth(500);
    m_tooltip.Activate(TRUE);

    LONG lStyle;
    lStyle  = GetWindowLong(m_listCourse.m_hWnd, GWL_STYLE);//获取当前窗口style
    lStyle  &= ~LVS_TYPEMASK; //清除显示方式位
    lStyle |= LVS_REPORT; //设置style
    SetWindowLong(m_listCourse.m_hWnd, GWL_STYLE, lStyle);//设置style
    DWORD dwStyle = m_listCourse.GetExtendedStyle();
    dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
    dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
    dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件
    m_listCourse.SetExtendedStyle(dwStyle); //设置扩展风格

 

CRect rectangle;
        m_listCourse.GetWindowRect(&rectangle);
        int nWidth  =rectangle.Width();

        m_listCourse.InsertColumn( 0, _T(“”), LVCFMT_CENTER,-1, -1);
        m_listCourse.InsertColumn( 1, _T(“序号”), LVCFMT_CENTER,rectangle.Width()*0.1 , -1);
        m_listCourse.InsertColumn( 2, _T(“添加时间”), LVCFMT_CENTER,rectangle.Width()*0.2 , -1);
        m_listCourse.InsertColumn( 3, _T(“课程名称”), LVCFMT_CENTER,rectangle.Width()*0.25 , -1);
        m_listCourse.InsertColumn( 4, _T(“课程难度”), LVCFMT_CENTER,rectangle.Width()*0.2 , -1);
        m_listCourse.InsertColumn( 5, _T(“课程时长”), LVCFMT_CENTER,rectangle.Width()*0.25 , -1);
        m_listCourse.DeleteColumn(0);

3.添加数据

for(int j=0;j<10;j++)

{

m_listCourse.InsertItem(j,””);

           strValue.Format(“%d”,j);
            m_listCourse.SetItemText(j,0,strValue);
           strValue.Format(“%d”,j)+1;
            m_listCourse.SetItemText(j,1,strValue);
          strValue.Format(“%d”,j+2);
            m_listCourse.SetItemText(j,2,strValue);
           strValue.Format(“%d”,j+3);
            m_listCourse.SetItemText(j,3,strValue);
           strValue.Format(“%d”,j+4);
            m_listCourse.SetItemText(j,4,strValue);

            strValue.Format(“提示信息内容%d”,j+5);
            CRect rect;
            m_listCourse.GetItemRect(j, &rect, LVIR_BOUNDS);
            //为第j行添加提示文本内容
            m_tooltip.AddTool(&m_listCourse,”故障设置:\r\n”+strValue, &rect, j + 1);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152508.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [数据库] 第一范式、第二范式、第三范式、BC范式

    [数据库] 第一范式、第二范式、第三范式、BC范式数据描述术语对应表关键码完全依赖、部分依赖、传递依赖第一范式、第二范式、第三范式

    2022年5月24日
    35
  • SNMP TRAP_Bootstrapping

    SNMP TRAP_Bootstrapping一、什么是SNMPTRAPSNMPtrap(SNMP陷阱):某种入口,到达该入口会使SNMP被管设备主动通知SNMP管理器,而不是等待SNMP管理器的再次轮询。在网管系统中,被管理设备中的代理可以在任何时候向网络管理工作站报告错误情况,例如预制定阈值越界程度等等。代理并不需要等到管理工作站为获得这些错误情况而轮询他的时候才会报告。正如人们用中断通知CPU数据的到达,而不是让CPU进行轮询一样。Trap通知是更加合理的选择。用一句话来说的话,SNMPTrap就是被管理设备主动发送消息给

    2022年8月20日
    11
  • java中垃圾回收机制_垃圾回收机制算法

    java中垃圾回收机制_垃圾回收机制算法一、如何确定某个对象是“垃圾”?这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。不失…

    2022年10月13日
    3
  • logstash高速入口

    logstash高速入口

    2022年1月10日
    49
  • django 装饰器_spring视图解析器

    django 装饰器_spring视图解析器类视图在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图。使用类视图可以使用类的一些特性,比如继承等。Viewdjango.views.generic.base.View是主

    2022年7月31日
    7
  • 中级java面试题_最新中级Java面试题及答案

    中级java面试题_最新中级Java面试题及答案1.Java的HashMap是如何工作的?HashMap是一个针对数据结构的键值,每个键都会有相应的值,关键是识别这样的值。HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到…

    2022年6月16日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号