大数据量下的ListCtrl

在windows程序开发中,如果使用了List显示数据,但是目标数据量很大,List性能就会变得很慢,刷新一次需要几秒甚至几十秒的时间,若解决此问题,可使用VirtualList技术 - 即带LVS_OWNERDATA样式的List control。1、创建创建时指定LVS_OWNERDATA样式,即在调用CreateWindow或CreateWindowEx时指定。注:1)不支持动态
摘要由CSDN通过智能技术生成

在windows程序开发中,如果使用了List显示数据,但是目标数据量很大,List性能就会变得很慢,刷新一次需要几秒甚至几十秒的时间,若解决此问题,可使用VirtualList技术 - 即带LVS_OWNERDATA样式的List control。

1、创建

创建时指定LVS_OWNERDATA样式,即在调用CreateWindow或CreateWindowEx时指定。

注:1)不支持动态切换到LVS_OWNERDATA样式,因此通过SetWindowLong等设置该样式将是失败的;

2)本样式不可与LVS_SORTASCENDING或LVS_SORTDESCENDING风格组合,所有的virtual list使用默认的LVS_AUTOARRANGE样式。

2、兼容性问题

1)四种形式的List均支持LVS_OWNERDATA,使用本样式的list不存储条目信息。因此可以应用的有效的状态信息只有LVIS_SELECTED和LVIS_FOCUSED。Virtual list 也不会为每一个条目保持状态和覆盖的图像,然而virtual list可以向父窗口发送一个LVM_SETCALLBACKMASK消息来查询这些图像。

2)受影响消息:

Message

限制描述

LVM_ARRANGE

不支持LVA_SNAPTOGRID样式

LVM_DELETEALLITEMS

设置条目个数为0并清除所有内部选集变量,但是并不是实际地删除所有条目&#

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值