【问题标题】:Keep row permanently selected in the ListView in Win32在 Win32 的 ListView 中保持行永久选中
【发布时间】:2012-02-26 05:32:49
【问题描述】:

我正在使用 Win32 ListView32。

ListView 中的行被选中时,它具有深蓝色。 可以通过单击或以编程方式调用ListView_SetItemState(hwnd, index, LVIS_SELECTED, LVIS_SELECTED); 来选择行。

ListView 控件焦点丢失时,所选行变为灰色。

如何在不考虑焦点的情况下将所选行保持为深蓝色?

【问题讨论】:

    标签: c listview winapi mfc selection


    【解决方案1】:

    如果您使用的是 VC6.0。您可以将属性设置为“始终显示选择”到 ListView。而ListView会被VC6.0定义为LVS_SHOWSELALWAYS

    资源文件中 CONTROL 的定义如下:

    CONTROL         "List2",IDC_LIST_MEMBER,"SysListView32",LVS_REPORT | 
                    LVS_SHOWSELALWAYS | LVS_EDITLABELS | WS_BORDER | 
                    WS_TABSTOP,7,64,514,187
    

    并且所选项目将突出显示。对于我的程序,默认的背景颜色是白色,默认选择和聚焦的颜色是蓝色,默认选择但失去焦点的颜色是灰色(当usr点击其他控件时)。

    【讨论】:

      【解决方案2】:

      “大概你在 OnInitDialog 处理程序中执行此操作?如果是这样,你需要 SetFocus 到您的列表控件,并从 OnInitDialog 返回 FALSE。"

      【讨论】:

        【解决方案3】:

        使用LVS_SHOWSELALWAYS 窗口样式。我不认为它可以保持深蓝色,因为那是该控件具有焦点的指示符。

        【讨论】:

        • 如果此时显示为灰色,则列表视图已经具有LVS_SHOWSELALWAYS 样式。
        • 您需要更改行的颜色。它已被选中。
        猜你喜欢
        • 1970-01-01
        • 2020-04-11
        • 1970-01-01
        • 2018-05-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多