如何让CListCtrl
自动调整列宽?通常,当列表中的项目太长时,后端会从视图中消失,并且用户手动必须调整相应列的宽度。
有没有办法通过代码来做到这一点?
答案 0 :(得分:12)
自动调整列的大小很简单:
for(int i = 0;i < pListCtrl->GetHeaderCtrl()->GetItemCount();++i)
pListCtrl->SetColumnWidth(i,LVSCW_AUTOSIZE_USEHEADER);
这将优化列。
答案 1 :(得分:1)
你有“无滚动”选项吗?默认情况下(“无滚动”选项关闭),如果项目太长,则会出现滚动条。
答案 2 :(得分:0)
我假设你是指报告模式中的列表控件?遗憾的是,没有办法自动调整列的大小。您可以执行的操作(我在某些地方执行的操作)是在输入项目时计算列的宽度,然后处理WM_SIZE并调整列的大小。然而,这会导致用户丢失的更改,因此如果用户没有进行任何更改,您可能需要更好的算法,例如跟踪,如果他没有调整大小。从用户体验的角度来看,它不是很好,我只在一定数量的情况下使用它,其中行为在UI的其余部分的上下文中是有意义的。