Multiple Select in Listbox



  • Hi,

    ich will in einer Listbox, die mit einigen String-Einträgen gefüllt ist,
    einige Einträge davon markieren können. Meine Listbox habe ich deshalb auf Mehrfach gestellt. Ich will die Methode GetCountSel() der Klasse CListBox verwenden, um herauszufinden, welche Indizes gerade markiert sind. Mit diesen Indizes könnte ich dann die entsprechenden Einträge löschen. Nun habe ich schon in der Hilfe geschaut, und komme damit nicht zurecht. Ich habe hinbekommen, dass jeder 2.Eintrag gelöscht wird. Leider ist kein Beispiel in der Hilfe dabei.
    Könntet ihr mir bitte erklären, wie ich diese Funktion anwenden muss, um die gewünschten Indizes zu erhalten. Am Besten mit einem kleinen Beispiel.

    Vielen Dank im Voraus

    Dirk



  • Aus der MSDN:

    // The pointer to my list box.
    extern CListBox* pmyListBox;
    
    // Get the indexes of all the selected items.
    int nCount = pmyListBox->GetSelCount();
    CArray<int,int> aryListBoxSel;
    
    aryListBoxSel.SetSize(nCount);
    pmyListBox->GetSelItems(nCount, aryListBoxSel.GetData()); 
    
    // Dump the selection array.
    #ifdef _DEBUG
       afxDump << aryListBoxSel;
    #endif
    

    Ich hab zwar immer mit int* selArray = new[count] gearbeitet - aber das ist auch eine Lösung...
    Bedenke auch das wenn du mehrere löschen willst das du von hinten anfangen musst.


Log in to reply