Forum: PC-Programmierung MFC: CListCtrl langsam bei vielen Items


von domi (Gast)


Lesenswert?

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

von Hans (Gast)


Lesenswert?

owner draw machen und daten selbst in den strukturen handeln.. das geht 
dann schneller...

www.codeproject.com ... da sollten genug infos dazu sein

73

von Blaubär (Gast)


Lesenswert?

am besten mit dem listctrl im dynamischen modus arbeiten

von FSt (Gast)


Lesenswert?

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

von domi (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.