歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C++中CListBox的用法簡介

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

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

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

刪除多條:

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

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

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

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

Copyright © Linux教程網 All Rights Reserved