ClistCtrl 中的选择和突出显示问题
Posted
技术标签:
【中文标题】ClistCtrl 中的选择和突出显示问题【英文标题】:Problems with selection and highlighting in ClistCtrl 【发布时间】:2013-10-22 11:39:35 【问题描述】:我发现了一些问题。
我有从 CListCtrl 扩展的类。当我双击行时,我选择了它。一切都很好,但是如果我对某些列进行排序,我就会遇到问题!
例如: 我排在第二位。我选择了它并对列进行排序,突出显示在第二个位置,但我的项目已移至第 4 行(并且选择已移至第 4 行)
我有一种不好的感觉,它可能是一些错误:(
有人看到过这样的问题吗?
PS:我不确定我是否必须提供一些代码,因为猜想没关系,但如果需要我会发布它
非常感谢你,对不起我的英语)
【问题讨论】:
听起来您在扩展类中以某种方式将选择与突出显示分开了。我认为您应该添加该类的代码。 【参考方案1】:我只在所有者数据列表视图 (LVS_OWNERDATA) 中看到过这个问题,所以我猜这里就是这种情况。 AFIK 有两种可能的解决方案。首先是自己存储选择状态,然后使用 LVM_SETCALLBACKMASK 让控件知道您将提供选择状态。您还必须响应鼠标单击并更新数据数组。另一种解决方案是在排序之前存储选定项目的列表,取消选择所有项目,进行排序,然后最后使用存储的列表恢复选择。
【讨论】:
嗨,阿布拉克萨斯!但是这个问题只存在于 Windows 8 如果您没有实现虚拟列表视图(没有 LVS_OWNERDATA 样式),那么很抱歉,我不知道问题出在哪里。但是,如果您正在实现一个虚拟列表视图(使用 LVS_OWNERDATA 样式),那么所有版本的 Windows 都存在此问题。以上是关于ClistCtrl 中的选择和突出显示问题的主要内容,如果未能解决你的问题,请参考以下文章
在 CEdit 文本更改时选择 CListCtrl 中的项目