首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在MFC C++中列表控件的悬停列标题上显示ToolTip

在MFC C++中,可以通过以下步骤在列表控件的悬停列标题上显示ToolTip:

  1. 首先,确保已经在资源编辑器中添加了一个列表控件,并设置了列标题。
  2. 在对话框类的头文件中添加以下代码,以声明一个CToolTipCtrl对象:
代码语言:cpp
复制

CToolTipCtrl m_ToolTip;

代码语言:txt
复制
  1. 在OnInitDialog()函数中添加以下代码,以初始化ToolTip控件:
代码语言:cpp
复制

// 创建ToolTip控件

m_ToolTip.Create(this);

m_ToolTip.Activate(TRUE);

// 将列表控件与ToolTip控件关联

m_ToolTip.AddTool(GetDlgItem(IDC_LIST1), _T("列表控件"));

代码语言:txt
复制
  1. 在OnNotify()函数中添加以下代码,以处理ToolTip的显示:
代码语言:cpp
复制

BOOL CMyDialog::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)

{

代码语言:txt
复制
   NMHDR* pNMHDR = (NMHDR*)lParam;
代码语言:txt
复制
   if (pNMHDR->code == TTN_NEEDTEXT)
代码语言:txt
复制
   {
代码语言:txt
复制
       TOOLTIPTEXT* pTTT = (TOOLTIPTEXT*)lParam;
代码语言:txt
复制
       if (pTTT->uFlags & TTF_IDISHWND)
代码语言:txt
复制
       {
代码语言:txt
复制
           // 获取列标题的文本
代码语言:txt
复制
           CString strText;
代码语言:txt
复制
           CHeaderCtrl* pHeader = m_ListCtrl.GetHeaderCtrl();
代码语言:txt
复制
           int nColumnCount = pHeader->GetItemCount();
代码语言:txt
复制
           for (int i = 0; i < nColumnCount; i++)
代码语言:txt
复制
           {
代码语言:txt
复制
               CRect rect;
代码语言:txt
复制
               pHeader->GetItemRect(i, &rect);
代码语言:txt
复制
               if (rect.PtInRect(pNMHDR->hwndFrom))
代码语言:txt
复制
               {
代码语言:txt
复制
                   pHeader->GetItem(i, &hditem);
代码语言:txt
复制
                   strText = hditem.pszText;
代码语言:txt
复制
                   break;
代码语言:txt
复制
               }
代码语言:txt
复制
           }
代码语言:txt
复制
           // 设置ToolTip的文本
代码语言:txt
复制
           _tcscpy_s(pTTT->szText, strText);
代码语言:txt
复制
           pTTT->hinst = AfxGetResourceHandle();
代码语言:txt
复制
           return TRUE;
代码语言:txt
复制
       }
代码语言:txt
复制
   }
代码语言:txt
复制
   return CDialogEx::OnNotify(wParam, lParam, pResult);

}

代码语言:txt
复制

注意:上述代码中的IDC_LIST1应替换为你的列表控件的ID。

  1. 在对话框类的头文件中添加以下代码,以声明一个CHDITEM对象:
代码语言:cpp
复制

HDITEM hditem;

代码语言:txt
复制
  1. 在对话框类的头文件中添加以下代码,以声明一个OnDestroy()函数:
代码语言:cpp
复制

afx_msg void OnDestroy();

代码语言:txt
复制
  1. 在对话框类的源文件中添加以下代码,以实现OnDestroy()函数:
代码语言:cpp
复制

void CMyDialog::OnDestroy()

{

代码语言:txt
复制
   CDialogEx::OnDestroy();
代码语言:txt
复制
   // 销毁ToolTip控件
代码语言:txt
复制
   m_ToolTip.DestroyWindow();

}

代码语言:txt
复制
  1. 最后,在对话框类的消息映射中添加以下代码,以处理WM_DESTROY消息:
代码语言:cpp
复制

ON_WM_DESTROY()

代码语言:txt
复制

完成上述步骤后,当鼠标悬停在列表控件的列标题上时,将显示相应的ToolTip文本。

这是一个基本的实现方法,可以根据实际需求进行修改和扩展。腾讯云提供的相关产品和产品介绍链接地址如下:

相关搜索:在Grid.Mvc控件的列中显示列表值列表中的字符串是否显示在列中?根据指定列中的值在winforms的GridView控件中突出显示一行使用提供的字符串在多列列表中显示文本将鼠标悬停在某一列中的图像上可使文本显示在另一列中需要显示自定义工具提示(dx-tooltip)悬停在单元上的dx数据网格在Angular 6应用程序中如何使用mysql和codeigniter在列表中显示列中重复显示一次的值?在Woocommerce管理订单列表的列中显示用户个人资料R在R中显示Stata或SAS文件的变量列表/标头,而不加载完整的数据集根据对列值进行分组,在具有指定列和行的网格中显示绘图列表在列表中查找重复项(而不是比较两个列表),并根据先前的外观在第二列中显示它们在查询构建器中使用连接查询时,在字段列表中显示为未知列的错误如何在单独的列中显示每个嵌套列表,最好是在使用CSS Grid时?通过屏蔽UI中的所有其他控件,在UWP应用程序(c++)的现有MainPage.xaml中的顶部显示进度条Matlab -通过将鼠标悬停在字符串上,在列表框中显示长字符串的后缘在Mysql中,如何获取同一外键的所有值都显示在另一列的列表中的记录在连接表中具有属性的房间多对多,如何显示连接表中具有列的对象列表如何在不点击控制器方法的情况下基于单击在webgrid列中显示C#列表使用基于文本的下拉列表的VBA和输入值在excel中隐藏或显示表格(而不是工作表)中的列和行。当用户在asp.net的下拉列表中选择一个值时,如何在图像控件中显示图像,该图像路径存储在数据库中?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • VC++编写ActiveX控件

    暑假在做一个项目的时候,本来是用C#.NET来写的一个港口进出闸的流程控制程序,里面涉及一个响应用PLC的采集信息的问题(PLC用串口和工控机相连接),然后思考如何用C#写串口通讯程序,结果师兄在一旁直接用VC++写了一个“*.ocx控件”,并在自己的电脑上进行了测试,完工后就把生成的“*.ocx”控件注册文件复制到了我们的电脑上。我们就在C#.NET程序里面将此控件拖入到主窗口中,然后就能直接利用此控件的事件来捕捉PLC的命令了,感觉好神奇。然后,我对C++的态度有了极大的转变,以前只知道C++写窗口程序是多么麻烦啊(远不如C#.NET来得快和直接),而它的所谓“比较底层,和底层操作系统的关系比C#这些高级语言要密切很多”的好处一直都没有体会到,现在才知道,正是因为C++比较底层,比较基础,所以它可以开发出很多和语言无关的公用程序块,如dll动态链接库和COM组件,原则上,只要你的Windows的系统,用VC++开发出来的这些公用程序块就能被任何语言调用(如果不用MFC框架,而用ATL框架来编写,甚至还可以脱离Windwos系统,不仅仅实现跨语言,甚至跨平台调用,这个笔者就没有仔细研究了)。

    03

    Qt编写数据可视化大屏界面电子看板10-改造QCustomPlot

    为了抛弃对QChart的依赖,以及echart的依赖,(当然,后期也会做qchart的版本和echart的版本,尤其是echart的版本是肯定会做的,毕竟echart的效果牛逼的一塌糊涂,全宇宙最牛逼吧。)特意对QCustomPlot进行了大刀阔斧的改造,当然这个改造不是直接在源码上修改,这个就破坏了源码的完整性,说不定被QCustomPlot的作者知道了有种被QJ的感觉,我得改造是直接继承QCustomPlot中的部分类开始的,比如为了实现横向柱状图,特意继承自QCPItemRect类来实现的,包括了横向柱状图和横向柱状分组图。在这个横向柱状图的自动计算过程中,居然用到了十几年前学习的二元一次方程,自动计算数据和柱状图位置,给定两个数据点绘制矩形。

    03

    c语言基础学习11_项目实战:IDE(集成开发环境)

    ============================================================================= ============================================================================= 涉及到的知识点有: 一、c++基础知识01 二、c++基础知识02   1、c语言中,如何在调用main函数之前就执行一段代码? 三、类与结构的区别01 四、类与结构的区别02 五、类的继承概念   1、一个mfc程序的例子的核心代码:   2、破解MFC中按钮的例子。   3、MFC版的小小IDE:   4、MFC版的小小浏览器: ============================================================================= ============================================================================= 会用到两个界面工具:vs2017下的MFC和QT,它们都是基于图形的。所以有些知识我们还没有学习到。 它们本身的构架就是用c++来完成的。

    02

    DropDownList1 各种属性

    一些常用的属性: DataMember 当数据源包含多个不同的数据项列表时,获取或设置数据绑定控件绑定到的数据列表的名称。(从 DataBoundControl 继承。) DataSource 获取或设置对象,数据绑定控件从该对象中检索其数据项列表。(从 BaseDataBoundControl 继承。) DataSourceID 获取或设置控件的 ID,数据绑定控件从该控件中检索其数据项列表。(从 DataBoundControl 继承。) DataTextField 获取或设置为列表项提供文本内容的数据源字段。(从 ListControl 继承。) DataTextFormatString 获取或设置格式化字符串,该字符串用来控制如何显示绑定到列表控件的数据。(从 ListControl 继承。) DataValueField 获取或设置为各列表项提供值的数据源字段。(从 ListControl 继承。) Items 获取列表控件项的集合。(从 ListControl 继承。) SelectedIndex 已重写。获取或设置 DropDownList 控件中的选定项的索引。 SelectedItem 获取列表控件中索引最小的选定项。(从 ListControl 继承。如果列表控件只允许一个选项,则使用此属性可获取选定项的各个属性。如果列表控件允许多个选项,则使用此属性可获取列表控件中索引最小的选定项的属性。 ) SelectedValue 获取列表控件中选定项的值,或选择列表控件中包含指定值的项。(从 ListControl 继承。) Text 获取或设置 ListControl 控件的 SelectedValue 属性。(从 ListControl 继承。) 公共方法: DataBind 已重载。 将数据源绑定到被调用的服务器控件及其所有子控件。 (从 BaseDataBoundControl 继承。) FindControl 已重载。 在当前的命名容器中搜索指定的服务器控件。 (从 Control 继承。) GetType 获取当前实例的 Type。 (从 Object 继承。) 公共事件 SelectedIndexChanged 当列表控件的选定项在信息发往服务器之间变化时发生。(从 ListControl 继承。) TextChanged 当 Text 和 SelectedValue 属性更改时发生。(从 ListControl 继承。)

    01
    领券