我在一个CListCtrl控件的双击事件里写了
清除一个CListCtrl控件的内容
for(int i=0;i<ListCtrl.GetCount();i++)
{
  ListCtrl.DeleteString(i);
}
有时候不能全部删掉,这是怎么回事?或者还有其他的方法清空吗?

解决方案 »

  1.   

    你把ListBox和ListCtrl混淆了。
    ListCtrl:DeleteAllItem();
    DeleteString之后行号变了.for(int i=ListCtrl.GetCount();i>=0;i--)
    {
      ListCtrl.DeleteString(i);
    }
      

  2.   

    for(int i=ListCtrl.GetCount()-1;i>=0;i--)
    {
      ListCtrl.DeleteString(i);
    }
      

  3.   

    每当你删除一个候就改变了原来的item的索引号了,如原来是第二的item在你删除第一个候就变成了第一个,我常用的是 DeleteAllItem成员函数
      

  4.   

    CListBox::ResetContent 
    void ResetContent( );ResRemoves all items from a list box.Example// The pointer to my list box.
    extern CListBox* pmyListBox;// Delete all the items from the list box.
    pmyListBox->ResetContent();
    ASSERT(pmyListBox->GetCount() == 0);