!CLOSED! CListCtrl SetColumnOrderArray



  • Hallo,

    ich möchte mein CListCtrl-Feld sortieren und zwar abhängig von der Auswahl des Benutzer entweder die Namen alphabetisch oder nach Nummern mit der größten zuerst. Das Feld ist folgendermaßen aufgebaut: in den Zeilen stehen Dateinamen und in den Spalten stehen die Namen der in der Datei aufgetretenen Fehlern und die Anzahl wie oft sie aufgetreten sind.

    Das Programm ist so geschrieben dass beim Start des Dialogs, in dem das CListCtrl-Feld ist, alphabetisch nach Fehlerbezeichnung eingefügt wird. Diese Reihenfolge speichere ich mit GetColumnOrderArray, dann rufe ich eine Sortierfunktion auf die ein neues Array mit den Indizes füllt so dass die Spalte mit der größten Fehleranzahl als erstes kommt.

    Mein Plan war, dass ich jetzt je nach Auswahl nur noch das passende Array mit SetColumnOrderArray benutzen muss um die Spalten entsprechend anzuordnen.
    Mein Problem ist jedoch, dass die Funktion mir immer 0 zurück gibt, also nicht erfolgreich die Spalten umsortiert.

    der Aufruf der Funktion (hier zum Beispiel nach der Nummer):

    void CErrorStatistic::OnBnClickedSortCount()
    {
    	m_ctlStatistic.SetColumnOrderArray(9, m_lpiIndexSorted);
    }
    

    Woran kann es liegen, dass ich immer 0 zurück bekomme? 😕
    Die Anzahl der Spalten stimmt auf jeden Fall, ebenso die Indizes in dem Array.

    Wär echt super wenn mir hier jemand helfen könnte.



  • Hat sich erledigt...
    Ich habe zwar die Anzahl der Spalten berechnet, habe aber versehentlich nur die Subitems berechnet. Deshalb hat immer eine Spalte gefehlt. 🙄


Log in to reply