listview自动调整列宽,virtual listview下调整列宽

有一种说法,将listview的列宽设置为-1,能根据内容的长度来自动调整李宽,自动的,不过我发现在virtual listview模式下,似乎不起作用,或者说达不到效果,如果listview有200万行,对数据容器做textwidth似乎又太慢了。


其实有个方法,只需要调整可视范围内的listview的列宽就可以了,只要对显示出来的数据进行比较,取数据的宽度,设置为最大宽度就可以了,不需要全部遍历

bool TMainForm::IsItemVisiable(int itemindex)
{
// 判断itemindex是否在可视范围内,如果是则返回true
int topindex = ListView_GetTopIndex(lv1->Handle);
int count = ListView_GetCountPerPage(lv1->Handle);
if (itemindex >= topindex && itemindex <= topindex + count)
return true;
return false;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值