listview自动调整列宽,virtual listview下调整列宽
有一种说法,将listview的列宽设置为-1,能根据内容的长度来自动调整李宽,自动的,不过我发现在virtual listview模式下,似乎不起作用,或者说达不到效果,如果listview有200万行,对数据容器做textwidth似乎又太慢了。其实有个方法,只需要调整可视范围内的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;
}
更多推荐
已为社区贡献1条内容
所有评论(0)