CListCtrl中用代码动态添加删除Header时的水平滚动条有关问题

CListCtrl中用代码动态添加删除Header时的水平滚动条问题
ListCtrl中要动态地用程序添加进去标题,即列名,有时又要全部删去,重新添加另外的列名,发现第一次添加的时候还好,第二次删除第一次的列名后再添加时,滚动条长度就变得很小了,好像有很多列似的,但其实真实列数也不错,就是列的右边多出很多空白而已,各位达人,怎么解决这个问题啊?

------解决方案--------------------
ListCtrl也变成动态的吧
------解决方案--------------------
删除按钮下
m_list.DeleteAllItems();//删除所有条目
for(有几列就循环执行几次)
m_list.DeleteColumn(0); //循环删除第0列头,这里用垃圾方法,你完全可以换其它做法
//不要直接用m_list.DeleteColumn(0);m_list.DeleteColumn(1);m_list.DeleteColumn(2);...稍不注意就出错了

添加列头,条目都一样的,如果还出问题那可能是你重写CListCtrl类没处理好DeleteColumn的原因
------解决方案--------------------
因为你用的是 "m_list.GetHeaderCtrl ()-> DeleteItem (0); "所以删除列头后,再次添加就会有问题,CHeadrCtrl* 与CListCtrl......看下面这个函数.把m_list.GetHeaderCtrl ()-> DeleteItem (0)换成m_list.DeleteColumn(0);就行了

CListCtrl::DeleteColumn
BOOL DeleteColumn( int nCol );
Return Value
Nonzero if successful; otherwise zero.
Parameters
nCol
Index of the column to be deleted.
Remarks
Call this function to delete a column from the list view control.