MFC: CListCtrl langsam bei vielen Items

Gast #472349
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
Gast #473729
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
Gast #474522
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren