Hallo, ich verwende in meinem MFC-Projekt ein CListCtrl in dem ich Daten anzeigen lasse. Die Daten werden sequentiell aus einer Datei geladen und Zeile für Zeile mit InsertItem und SetItemText zur Liste hinzugefügt. Leider dauert das Einfügen bei sehr vielen Elementen (20000 Zeilen, 40 Spalten) immer länger (nicht lineares Verhalten). Gibt es eine Möglichkeit das ganze zu Beschleunigen, wenn ja, wie? Eine Sortierung ist nicht nötig, die Daten werden einmal hinzugefügt und müssen nur in der Liste angezeigt und bei Knopfdruck alle gelöscht werden. Gruß, Domi
owner draw machen und daten selbst in den strukturen handeln.. das geht dann schneller... www.codeproject.com ... da sollten genug infos dazu sein 73
am besten mit dem listctrl im dynamischen modus arbeiten
Folgender Code könnte hilfreich sein: lpListCtrl->SetRedraw(FALSE); //Items in das ListCtrl schieben; lpListCtrl->SetRedraw(TRUE); Sollte schneller werden, da es das Neuzeichnen nach jedem InsertItem() verhindert. Gruß FSt
Danke für die Antworten! Letzteres (neu zeichnen temporär deaktivieren) hat keinen merkbaren Unterschied gebracht. Mit einer virtuellen Liste wird es wohl um einiges schneller werden, aber momentan hab ich keine Zeit das auszuprobieren. Gruß, Domi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.