CListBox自带方法:
MyListBox->ResetContent();
CListBox用法:
关联一个变量m_List,m_List.AddString("test");
删除一个字符串
int DeleteString( UINT nIndex );
例如:
m_listbox.DeleteString(5);
插入一个字符串
int InsertString( int nIndex, LPCTSTR lpszItem);
例如:
m_listbox.InsertString(2,L"00-001-00011");
清空所有项目
void ResetContent( );
例如;
m_listbox.ResetContent();
其他方法:
网上查到了这样的方法:
while(pmyListBox->GetCount()) pmyListBox->DeleteString( 0 );
还查到了这样的方法:
int nListCount=pMyListBox->GetCount(); for (int i=0;i < nListCount;i++) { pmyListBox->DeleteString(0);//循环次数等于总个数,每次都删除第一个,一样没有清空 }
最容易想到的删除方式,的确很简单!错!
试想能完全删除ListBox中的所有行记录吗,错,只能删除一半, 为什么?
正确的删除方法:
int Count = m_ListBox.GetCount(); for (int i=Count ;i>=0 ; i--) { m_ListBox.DeleteString(i); }
完全删除!
是否已经明白了呢?
不难猜想CListBox 在删除一条记录的时候,已经把记录数重新调整过,当你删除第一条后,后面条目的索引值其实已经发生了改变,此时列表中
的最大索引值变成了Count - 1,当你要删除的序号大于最大索引值时是无法删除成功的!
CListBox如何正确删除列表中全部内容 - dusulin888的专栏 - CSDN博客 http://blog.csdn.net/dsl_sz/article/details/18088213