歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++中CListBox的用法簡介

C++中CListBox的用法簡介

日期:2017/3/1 10:07:36   编辑:Linux編程

下面是從一個CListBox中刪除字符串的方法

每次刪除一條,代碼如下:

  1. int nCurSel = lst_message.GetCurSel();
  2. if(nCurSel== LB_ERR){
  3. MessageBox(_T("請選擇要刪除的條目"),_T("ERROR"));
  4. }else{
  5. lst_message.DeleteString(nCurSel);
  6. }

刪除多條:

  1. int nCount = lst_message.GetSelCount();
  2. CArray<int,int> aryListBoxSel;
  3. aryListBoxSel.SetSize(nCount);
  4. lst_message.GetSelItems(nCount, aryListBoxSel.GetData());
  5. for(int i=nCount-1;i>=0;i--)
  6. {
  7. lst_message.DeleteString(aryListBoxSel[i]);
  8. }

單條刪除沒什麼可說的,主要說一下多條刪除:
主要思路:記錄當前選中記錄的序號,循環刪除每一條記錄

實現過程:
1.首先定義nCount,表示選中的條數;
2.定義CArray用來記錄別選中的序號;
3.設置CArray的大小為選中記錄的條數;
4.為CArray進行復制
5.循環刪除每一項

注意:關鍵在於第五條中,刪除的時候一定要從大到小的刪除,否者將會導致程序結果的錯誤;
原因:若從小到大的刪除,每刪除一條記錄原來序號的位置會發生變化,這樣在刪除多條時,會有一條已選擇的數據無法刪除。

Copyright © Linux教程網 All Rights Reserved