CListCtrl容纳的最多行数

工程:vs2015 mfc,32位程序

系统:win7 64bit

电脑内存:8GB

写了一个小工具,把读取的文件内容显示在一个CListView中,显示的格式和UE差不多:左侧一列显示该行的开始偏移量,然后16列显示16个字节,再一列显示这16个字节的字符(这部分没有UE智能,每个字符单独显示,而没有把“汉字”显示成一个),最后一列显示一些简单的说明(只有少数行会有这个说明,每个说明最大不超过10个字)

通常读取文件都是没有问题的,今天读了一个大约1.7GB的文件,结果内容显示不出来了。跟踪发现CListView设置项数时失败:

GetListCtrl().SetItemCount((int)m_lCountGroup);

行数m_lCountGroup有1.07亿+条,注意此CListView已经使用了虚拟列表,所以这里只设置数量即可。

后去csdn上查看,说虚拟列表应该使用Ex的接口,所以修改如下:

GetListCtrl().SetItemCountEx((int)m_lCountGroup);

其第二个参数使用默认值。这个接口会有个返回值,表示成功还是失败,这就比较容易了,通过反复试验,发现行数不超过1亿时就成功,而一旦超过(即使只超过1条)就失败。

今天终于清楚CListCtrl最大可以容纳的行数了。

不过不知道像UE这类工具是如何显示超过1亿行数据的,有了解的说说看

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值