【问题标题】:Does LVS_EX_FULLROWSELECT have any compatibility issues with other styles?LVS_EX_FULLROWSELECT 与其他样式有兼容性问题吗?
【发布时间】:2011-03-28 09:34:29
【问题描述】:

我正在尝试在我的网格列表控件上设置 LVS_EX_FULLROWSELECT 样式,因为我想要全行选择。但是显然它没有任何效果。由于我还使用了许多其他样式,我想知道 LVS_EX_FULLROWSELECT 是否与其他样式有任何兼容性问题。任何人?以下是我设置的样式。

最初在基本列表控件类上设置了以下样式:

WS_CHILD|WS_BORDER|LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SINGLESEL

然后我尝试在派生的网格列表控件类中设置额外的样式:

ListView_SetExtendedListViewStyleEx(sysId(), 0, LVS_EX_GRIDLINES | LVS_OWNERDATA | LVS_EX_FULLROWSELECT);

【问题讨论】:

    标签: c++ listview mfc clistctrl common-controls


    【解决方案1】:

    您需要向控件发送LVM_SETEXTENDEDLISTVIEWSTYLE消息并指定LVS_EX_FULLROWSELECT扩展样式(来源:MS Support)。

    编辑:

    检查示例。有

    ListView_SetExtendedListViewStyle(m_hWnd, ListView_GetExtendedListViewStyle(m_hWnd), VS_EX_FULLROWSELECT);
    

    尝试使用ListView_GetExtendedListViewStyle(sysId()) 而不是0。顺便说一句 - 你的 sysId() 真的检索窗口句柄吗?这个名字听起来有些不同。

    干杯。

    【讨论】:

    • 谢谢,但这就是我正在做的。 ListView_SetExtendedListViewStyleEx 宏在后台调用 LVM_SETEXTENDEDLISTVIEWSTYLE。而且我已经在通话中有 LVS_EX_FULLROWSELECT 。但它不起作用,这就是为什么我认为 LVS_EX_FULLROWSELECT 样式可能与我正在使用的其他样式存在兼容性问题。
    • 我已经编辑了我的答案,以便为您提供更详细的提示。希望对您有所帮助。
    • 还是不行。似乎 LVM_SETEXTENDEDLISTVIEWSTYLE 与我设置的其他一些样式冲突。是的 sysId() 确实检索窗口句柄。还是谢谢。
    【解决方案2】:

    第二个参数是掩码,所以需要:

    ListView_SetExtendedListViewStyleEx(m_hWnd, LVS_EX_GRIDLINES | LVS_OWNERDATA | LVS_EX_FULLROWSELECT, LVS_EX_GRIDLINES | LVS_OWNERDATA | LVS_EX_FULLROWSELECT);
    

    【讨论】:

    • 谢谢。我试过了,但没有用。顺便说一句,第二个参数中的不是 0 意味着匹配所有内容。至少文档是这么说的。
    猜你喜欢
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2018-10-15
    • 2014-08-22
    • 2016-08-15
    • 2011-05-04
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多