CListBox mehrfachauswahl
-
hallo,
ich habe ein CListBox aus der mehrere Einträge gewählt werden können.
Die Indexe der Einträge bekomme ich über GetSelCount, was auch funktioniert...
nun meine Frage, wie bekomme ich die dazugehörigen Namen aus der Liste?
Mit GetText?
Wie setze ich die Funktion genau ein ?
Kurzer Bespielcode wäre Super, denn daraus werde ich leider nicht schlau:
void GetText(int iindex, CString &rString) const
ist iindex der Index aus der Liste? ist &rString ein Pointer?
so habe ich es versucht:
CString *rString;
m_Clist.GetText(4, &rString);
Messagebox(rString,"Listeneintrag", usw...)Vielen Dank im vorraus
Gruß
peter
-
Die Indizes bekommst du überhaupt nicht über GetSelCount, sondern mit GetSelItems. Damit solltest du es auch schaffen.
Sah mir zu böse aus
[ Dieser Beitrag wurde am 29.01.2003 um 15:06 Uhr von C-O-M-M-A-N-D-E-R editiert. ]
-
hallo,
sorry, habe GetSelItems benutzt.
Mit GetSelCount habe ich das Array erstellt, für GetSelItems.gruß
peter
-
Gelöscht. Habe mich verlesen und statt ListBox ListCtrl angenommen.
[ Dieser Beitrag wurde am 29.01.2003 um 19:28 Uhr von Unix-Tom editiert. ]
-
achso
Beispiel aus der MSDN:
// Get the indexes of all the selected items. int nCount = pmyListBox->GetSelCount(); CArray<int,int> aryListBoxSel; aryListBoxSel.SetSize(nCount); pmyListBox->GetSelItems(nCount, aryListBoxSel.GetData());
-
Also der eine redet von einer Listbox und der andere von einem ListCtrl.
Das eine hat mit dem anderen nicht viel zu tun, oder?
Also nun zu GetText():CString str = ""; //schreibt den Text des ersten Items deiner Listbox in str, str fungiert //hier als eine Refernz auf einen CString als Paramter m_pListBox.GetText(0,str);
So nun kannst du statt Index = 0, das ganze in eine Schleife packen und dein Array mit den selektierten Indizes abarbeiten, z.B.
for(int i = 0; i < aryListBoxSel.GetSize(); i++) { //holt sich an der gegebenen Stelle den String und schriebt ihn in str m_pListBox.GetText(aryListBoxSel.GetAt(i), str); //TODO irgendwas mit dem str }
So und nun Applaus für die Lösung...