doppelargh (clistctrl sort)
-
argh no. 1 weil die suche deaktiviert is
argh no. 2ich bekomm das sortieren nich auf die reihe
beim ersten anklicken der titelleiste klappts... bei allen folgenden springen mir die items irgendwie hoch und runter... kann da kein schema erkennendabei siehts so einfach aus... einfach in der callback funktion sagen welche weiter oben/weiter unten bzw. gleich
habs auch schon mit nem schalter versucht um die bewertung nach jedem anklicken der leiste umzudrehen... ändert auch nix
wär super wenn mir jemand einen kleinen funktionierenden beispielcode mit 2 spalten hätte oder weiss was ich vergessen hab
thx
-
ganz schnell zusammengebastelt:
//Nested Hilfe-Klasse struct ListItemData { CListCtrl& lvc; //absteigend oder aufsteigend bool bDescending; int iColumn; }; static int CALLBACK OnCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParam3) { ListItemData& lid = *reinterpret_cast<ListItemData*>(lParam3); CString strText1 = lid.lvc.GetItemText(lParam1,lid.iColumn), strText2 = lid.lvc.GetItemText(lParam2,lid.iColumn); //für Text return lid.bDescending ? ::lstrcmp(strText1,strText2) > 0 ? -1 : 1 : ::lstrcmp(strText1,strText2) <= 0 ? -1 : 1; //für Zahlen return lid.bDescending ? ::atoi(strText1) > ::atoi(strText2) ? -1 : 1 : ::atoi(strText1) < ::atoi(strText2) ? -1 : 1; } //Aufruf bei LVN_COLUMNCLICK static bool a; ListItemData lid = {lvc,a = !a,0}; lvc.SendMessage(LVM_SORTITEMSEX,reinterpret_cast<WPARAM>(&lid), reinterpret_cast<LPARAM>(OnCompare));LVM_SORTITEMSEX ist erst ab Windows 98 mit Internet Explorer 5 verfügbar, aber wer viel zu viel Zeit hat, kann auch LVM_SORTITEMS nehmen.

-
lol hab einfach nur LVM_SORTITEMS durch LVM_SORTITEMSEX ersetzt und schon gings
auf jeden fall thx für den code