问题应该出在DeleteColumn()这个每次删除后列会自动向前跳一个。所以应该从后面往前删除,或者一直删除第0项。
请看下面例子
CString str;
for(int i=0;i<5;i++) //添加五列,标题为0~4
{
str.Format("%d",i);
m_List.InsertColumn( i,str, LVCFMT_LEFT, 40 );
}
while ( m_List.DeleteColumn (0))// 因为你删除了第一列后,后面的列会依次向上移动。所以每次只删除0列
CString str;
for(i=0;i<7;i++) //又添加七列,标题为0~6
{
str.Format("%d",i);
m_List.InsertColumn(i,str, LVCFMT_LEFT, 40 );
}
你真是笨到家了哈,应该从后面往前删,知道不,从5-0这个删除,不要从0-5来删