【问题标题】:MFC/WIN32: mouse hover highlight in listctrlMFC/WIN32:listctrl 中的鼠标悬停高亮显示
【发布时间】:2010-03-19 22:11:28
【问题描述】:

Windows 资源管理器的 ListView 控件突出显示鼠标下的任何项目,而不影响当前选择。这有助于在列表视图中关联给定工具提示适用于哪些项目 - 特别是在报告模式下。

但是,我目前无法找到任何 API 可以为我的 MFC 应用程序的 CListCtrl 提供相同的行为。扩展样式只有 LVS_EX_TRACKSELECT,它实际上改变了当前选择(糟糕!)。

有谁知道如何提供标准的 CListCtrl(或任何实际位于其之上的)鼠标热跟踪功能?

我发现了一些关于如何为每个单元格和每行提供工具提示文本的文章,但是如果没有突出显示,就很难说出工具提示与什么相关...

【问题讨论】:

  • 我必须链接到 uxtheme.lib,但这很好用。我需要添加这个依赖项,只是为了得到这样的眼睛糖果。

标签: c++ visual-studio mfc winapi


【解决方案1】:

您可以将资源管理器主题设置为列表控件。这样一来,它的外观会更好看,并且您还可以获得所需的突出显示:

SetWindowTheme(hListControl, L"Explorer", NULL);

【讨论】:

    【解决方案2】:

    包括 LVS_EX_TWOCLICKACTIVATE 或 LVS_EX_ONECLICKACTIVATE 的扩展样式。这被称为“热跟踪”(与热跟踪选择相反)。 http://msdn.microsoft.com/en-us/library/bb774732%28VS.85%29.aspx

    【讨论】:

    • 第二个答案听起来会奏效。但是,我没有任何热跟踪(使用 ONECLICKACTIVATE)工作。我已经单独尝试过这种风格,并使用 LVS_EX_TRACKSELECT。但即使使用 6.0 控件清单,在 Win7 下,我的外观也较旧,并且没有热跟踪 :(
    • 此示例在 Win7 上显示热跟踪(甚至似乎不需要指定扩展样式):codeproject.com/KB/list/CListCtrl_column_picker.aspx
    猜你喜欢
    • 2018-01-27
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多