在ListCtrl的下拉按钮响应函数中设计代码:
1.将ListCtrl中的记录写入一个文本文档,每一行一条记录.
2.清空ListCtrl.
3.读入文本文档的前20行,填充给ListCtrl.
///////////////////////////////////////////////
参考代码
///////////////////////////////////////////////
void CXXXXView::OnDropdownComboAdd()(CDC* pDC)
{
    char*pszFileName="ListItem.txt";
CStdioFile myFile;
CFileException fileException;
if (myFile.Open(pszFileName,CFile::modeCreate|CFile::modeNoTruncate|
CFile::modeReadWrite),&fileException)
{
   CString str;
            for (int i=0;i < m_pCombo->GetCount();i++)
   {
              m_pCombo->GetLBText( i, str);
              myFile.WriteString(str);
              myFile.WriteString("\n");
   }           m_pCombo->Empty();   myFile.SeekToBegin();
           for (int i=0;i<20;i++)
    {
             myFile.ReadString(strContent);
             m_pCombo->AddString(strContent);
           }
}
     myFile.Close();}

解决方案 »

  1.   

    以上代码是针对ComboBox的,其中m_pCombo是ComboBox指针.
    楼主想要在ListCtrl中实现的话,可以稍做修改.
    另外,
    也可以先将ListCtrl中第20个以后的记录保存到一字符串数组strArry,
    然后使用DeleteItem()删除ListCtrl中第20个以后的记录.
    若需还原的时候,还可以使用InsertItem()
    将strArry的字符串追加到第20个记录后面.
      

  2.   

    楼上,你本质上还不是删除再添加,我想楼主不是这个意思,如果删除再添加,有很多方法。
    这个问题,恐怕不好解决,如果CListCtrl没有这个功能的话,只能是重写CListCtrl类了。