2009-03-23 16 views
0

Ich möchte eine CListView machen, die seine Zeilen von einem Remote-Server mit Socket liest. Die Zeilen können mehr als eine Million sein, deshalb muss ich Zeilen nur lesen, wenn ich sie brauche, und kann sie in Gruppen lesen (mit mehr als einer Zeile pro Anfrage). Ich muss auch die Sortierung nach Zeilen unterstützen.ListView mit LVS_OWNERDATA Flag

Kann ich List Control mit LVS_OWNERDATA Flag verwenden? Und wenn ich eine andere Gruppe von Zeilen lesen muss? Brauche ich die Schaltflächen Zurück, Weiter, als wäre es ein Webseitenraster?

Können Sie mir bitte einen Rat geben?

Mit freundlichen Grüßen

P. S. Aber es gibt ein anderes Problem, das ich habe ... CListView ist im Hauptthread der Benutzeroberfläche, aber ich kann nur Zeilen vom zweiten Thread anfordern, die nicht immer für die Verwendung verfügbar sind.

Kann ich UI-Thread in Callback für Zeileninformationen blockieren?

Und gibt es eine Möglichkeit, dass ich ListView blockieren kann, um nach neuen Zeilen Informationen zu fragen? Kann es deaktiviert werden, bis mein zweiter Thread beschäftigt ist?

+0

Was meinen Sie mit "Sortieren nach Zeilen"? Normalerweise sortiert man nach einer Spalte oder mehreren Spalten in einer bestimmten Reihenfolge. –

+0

Ich meine Zeilen nach Spalte sortieren :) –

+0

Dies können Sie nur tun, wenn Ihr Remote-Server Sortierung unterstützt. –

Antwort

3

Lesen Raymond Chen über OWNERDATA listviews. Sie müssen Ihren eigenen Cache für abgerufene Daten implementieren und während des Datenabrufs etwas Sinnvolles anzeigen. Ich glaube nicht, Next/Prev-Tasten sind eine gute Idee, die Listenansicht behandelt seine eigene Navigation (Bildlaufleiste, Tastaturkürzel usw.)