ListCtrl nach Datum sortieren
-
Hallo,
ich habe ein Problem, und zwar möchte ich gerne ein CListCtrl auch nach Datum sortieren können. Es will aber nicht funzen. Hier ist ein Ausschnitt aus meinem Code die ich von Codeguru übernohmen habe und jetzt anpassen will.
//hier ist der Aufruf meine SortKlase CSortClass csc(pList,y/*pNMListView->iSubItem*/, bAscending); csc.Sort(bAsc); //hier der Konstruktor for (int t = 0; t < max; t++) { dw = pWnd->GetItemData(t); txt = pWnd->GetItemText(t, iCol); pWnd->SetItemData(t, (DWORD) new CSortItemDate(dw, txt.Trim())); } //Funktion SortItemDate CSortClass::CSortItemDate::CSortItemDate(const DWORD _dw, const CString & _txt) { dw = _dw; //_txt = _txt.Trim(); COleDateTime dt(atoi(_txt.Mid(6,4)),atoi(_txt.Mid(3,2)),atoi (_txt.Left2)),0,0,0); oleDt = dt; } //Vergleich int CALLBACK CSortClass::CompareAscD(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) { CSortItemDate * d1 = (CSortItemDate *) lParam1; CSortItemDate * d2 = (CSortItemDate *) lParam2; ASSERT(d1 && d2); //HIER PASSIERT MANCHMAL EIN SPEICHERVERLETZUNG if (d1->oleDt == d2->oleDt) return 0; return d1 < d2 ? 1 : -1; } //Aufruf zum sortieren (die Sort Funktion pWnd->SortItems(CompareAscD, 0L);
ich danke in Voraus für jede Hilfestellung.
[ Dieser Beitrag wurde am 06.12.2002 um 10:55 Uhr von BG editiert. ]
-
return d1->oleDt < d2->oleDt ? 1 : -1;
Bisher vergleichst Du nur die Zeiger.
-
danke danke danke. du hast je sooooooooooooooooooooo recht