Listview Reportstyle Mehrfachauswahl auswerten



  • Hallo,

    ich habe ein Listviewfenster im Reportstyle. Wenn ich nun mehrere Zeilen markiere und dann eine Aktion auf die selektierten Zeilen durchführen möchte, wie mache ich sinnvollerweise die Auswertung welche Zeilen markiert sind. Bei einem singeleselection Listviewfenster hab ich einfach die Message LVM_GETSELECTIONMARK gesendet und die Rückgabe verarbeitet. Aber sowas wie "GETNEXTSELECTION" gibt es ja nicht.

    Eine weitere Problematik in meiner Anwendung ist die Sortierordnung, die über die Spaltenköpfe ausgelöst werden kann. Wählt man einige Zeilen aus und ändert dann die Sortierordnung, sind die selektierten Item wahllos im Listview verteilt und nicht mehr untereinander.

    Also mein Lösungsansatz wäre sich per LVM_GETSELECTEDCOUNT die Anzahl der markierten Items zu holen. Dann per LVM_GETITEMSTATE vom ersten Item an alle Items zu prüfen, mit Abbruchbedingung auf die per LVM_GETSELECTEDCOUNT ermittelte Anzahl der Selections und so alle Zeilen von oben nach unten durch zu gehen.

    Ist das der richtige Weg oder gibt es etwas einfacheres und/oder schnelleres?


  • Mod

    Falscher Ansatz.
    Verwende LVM_GETNEXTITEM
    http://msdn.microsoft.com/en-us/library/bb761057(VS.85).aspx
    - Beginne mit Index -1, Setze die Suchmaske auf LVNI_ALL|LVNI_SELECTED
    - Wenn -1 zurückkomt ist Deine Suche zu Ende.



  • Danke, das war der Hinweis den ich benötigt habe.


Log in to reply