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,以免重绘