用LVSCW_AUTOSIZE_USEHEADER,让CListCtrl的最后一列适应宽度

1、SetRedraw(FALSE)     //先禁掉自动重绘,以免闪屏、影响效率
2、获取list原始大小 rect
3、设置list大小,让list变得水平很小,垂直很大
4、对每一列调用SetColumnWidth,第二个参数用LVSCW_AUTOSIZE_USEHEADER
5、把list设为原来的大小 rect
6、SetRedraw(TRUE)   //恢复重绘
7、Invalidate 刷新

 

 

一点说明:

第3步里,有水平滚动条时,最后一列才能设置成正确的大小,如果没有水平滚动条,最后一列始终会填满整个控件。默人list只会适应可视区域内的宽度,所以把高度设得很大,来适应所有行

 

 

3、4步里,movewindow时,重绘参数一定要设为false,以免重绘

你可能感兴趣的:(用LVSCW_AUTOSIZE_USEHEADER,让CListCtrl的最后一列适应宽度)