Informationen zu List-View-Steuerelementen

Weitere Informationen finden Sie im Beispiel des Virtual Listview-Steuerelements.

Ein Listenansichtssteuerelement ist ein Fenster, in dem eine Auflistung von Elementen angezeigt wird. Listenansichtssteuerelemente bieten mehrere Möglichkeiten zum Anordnen und Anzeigen von Elementen und sind viel flexibler als einfache Listenfelder. Beispielsweise können zusätzliche Informationen zu jedem Element in Spalten rechts neben dem Symbol und der Bezeichnung angezeigt werden.

List-View Stile und Ansichten

Listenansichtssteuerelemente können Elemente in fünf verschiedenen Ansichten anzeigen. Die Fensterart des Steuerelements gibt die Standardansicht an. Zusätzliche Fensterstile geben die Ausrichtung von Elementen und steuerelementspezifischen Features an. In der folgenden Tabelle werden die Ansichten beschrieben.

Ansichtsname BESCHREIBUNG
Symbolansicht Wird durch das LVS_ICON Fensterformat oder durch Übergeben von LV_VIEW_ICON mit der LVM_SETVIEW-Nachricht angegeben. Jedes Element wird als Symbol in voller Größe und mit einer Bezeichnung darunter dargestellt. Der Benutzer kann die Elemente an einen beliebigen Speicherort im Listenansichtsfenster ziehen.
Kleine Symbolansicht Wird durch die LVS_SMALLICON Fensterart oder durch Übergeben LV_VIEW_SMALLICON mit LVM_SETVIEW angegeben. Jedes Element wird als kleines Symbol mit der Bezeichnung rechts davon angezeigt. Der Benutzer kann die Elemente an einen beliebigen Speicherort ziehen.
Listenansicht Wird durch das LVS_LIST Fensterformat oder durch Übergeben von LV_VIEW_LIST mit LVM_SETVIEW angegeben. Jedes Element wird als kleines Symbol mit einer Bezeichnung rechts davon angezeigt. Elemente werden in Spalten angeordnet, und der Benutzer kann sie nicht an einen beliebigen Speicherort ziehen.
Berichtsansicht (Details) Wird durch das LVS_REPORT-Fensterformat oder durch Übergeben von LV_VIEW_DETAILS mit LVM_SETVIEW angegeben. Jedes Element wird in einer eigenen Zeile angezeigt, wobei die Informationen in Spalten angeordnet sind. Die linke Spalte ist immer gerechtfertigt und enthält das kleine Symbol und die Bezeichnung. Nachfolgende Spalten enthalten Unterelemente, die von der Anwendung angegeben werden. Jede Spalte verfügt über einen Header, es sei denn, Sie geben auch die LVS_NOCOLUMNHEADER Fensterformat an.
Neben-/Untereinanderansicht Version 6 und höher. Wird durch Übergeben von LV_VIEW_TILE mit LVM_SETVIEW angegeben. Jedes Element wird als Symbol in voller Größe mit einer Beschriftung von einer oder mehreren Zeilen daneben angezeigt.

 

Die folgenden Screenshots verwenden Ansichten, um unterschiedliche Mengen an Informationen zu jedem der sieben Haustiere anzuzeigen. Die Ansichten veranschaulichen, wie die Informationen unter Windows Vista angezeigt werden können. Die visuellen Stile für das Steuerelement wurden mithilfe von SetWindowTheme auf das Design "Explorer" festgelegt.

Der folgende Screenshot zeigt die Detailansicht.

Screenshot: Informationen in fünf Spalten und sieben Zeilen

Der folgende Screenshot zeigt die Symbolansicht.

Screenshot, der nur den Namen jedes Haustiers und ein Symbol zeigt, das die Art angibt

Der folgende Screenshot zeigt die Listenansicht.

Screenshot, der für jedes Haustier ein großes Symbol neben dem Text des Namens, der Rasse und des Preises des Haustiers zeigt

Der folgende Screenshot zeigt die Kachelansicht.

Kachelansicht.

Sie können den Ansichtstyp ändern, nachdem Sie ein Listenansicht-Steuerelement erstellt haben. Verwenden Sie zum Abrufen und Ändern des Fensterstils die Funktionen GetWindowLong und SetWindowLong . Um die Fensterstile der aktuellen Ansicht zu bestimmen, verwenden Sie den wert LVS_TYPEMASK .

Sie können die Anordnung von Elementen in der Symbol- oder kleinen Symbolansicht steuern, indem Sie entweder die LVS_ALIGNTOP (Standard) oder LVS_ALIGNLEFT Fensterstil angeben.

Sie können die Ausrichtung ändern, nachdem Sie ein Listenansichtssteuerelement erstellt haben. Um die aktuelle Ausrichtung zu bestimmen, verwenden Sie den wert LVS_ALIGNMASK .

Zusätzliche Fensterstile bieten weitere Optionen, z. B. ob ein Benutzer Bezeichnungen bearbeiten oder mehrere Elemente gleichzeitig auswählen kann. Eine vollständige Liste finden Sie unter Listenansichtsfensterstile.

Erweiterte List-View-Stile

Die erweiterten Listenansicht-Steuerelementstile bieten Optionen wie Kontrollkästchen, flache Bildlaufleisten, Rasterlinien und Hot-Tracking. Eine vollständige Liste finden Sie unter Erweiterte List-View Formatvorlagen. Sie greifen nicht auf erweiterte Listenansichtsstile auf die gleiche Weise wie Standardfensterstile zu. Sie verwenden die Funktionen GetWindowLong und SetWindowLong nicht, um erweiterte Stiländerungen vorzunehmen.

Es gibt zwei Nachrichten, die Erweiterte Formatinformationen festlegen und abrufen: LVM_SETEXTENDEDLISTVIEWSTYLE und LVM_GETEXTENDEDLISTVIEWSTYLE. Anstatt die Nachrichten explizit zu senden, können Sie die folgenden entsprechenden Makros verwenden: ListView_SetExtendedListViewStyle, ListView_SetExtendedListViewStyleEx und ListView_GetExtendedListViewStyle.

Format für virtuelle List-View

Eine virtuelle Listenansicht ist ein Listenansichtssteuerelement mit dem LVS_OWNERDATA Stil. Dieser Stil ermöglicht es dem Steuerelement, Millionen von Elementen zu verarbeiten, da der Besitzer die Last der Verwaltung von Elementdaten erhält. Dadurch können Sie das Virtuelle Listenansicht-Steuerelement mit großen Informationsdatenbanken verwenden, in denen bereits bestimmte Methoden für den Datenzugriff vorhanden sind.

Ein virtuelles Listenansichtssteuerelement verwaltet nur sehr wenige Elementinformationen selbst. Mit Ausnahme der Elementauswahl- und Fokusinformationen muss der Besitzer des Steuerelements alle Elementinformationen verwalten. Andere Prozesse fordern Elementinformationen vom Besitzer mithilfe von LVN_GETDISPINFO Benachrichtigungscodes an.

Da diese Art von Listensteuerelement für große Datasets vorgesehen ist, wird empfohlen, angeforderte Elementdaten zwischenzuspeichern, um die Abrufleistung zu verbessern. Die Listenansicht bietet einen Cachehinweismechanismus, der die Optimierung des Caches unterstützt. Der Hinweis wird in Form eines LVN_ODCACHEHINT Benachrichtigungscodes implementiert.

Erstellen eines virtuellen List-View-Steuerelements

Sie erstellen virtuelle Listenansichtssteuerelemente mithilfe der Funktion CreateWindow oder CreateWindowEx , indem Sie die LVS_OWNERDATA Fensterstil als Teil des dwStyle-Funktionsparameters angeben. Ein dynamisches Wechseln zur und von der LVS_OWNERDATA-Stils wird nicht unterstützt.

Sie können den LVS_OWNERDATA-Stil in Kombination mit den meisten anderen Fensterstilen verwenden, mit Ausnahme des LVS_SORTASCENDING oder LVS_SORTDESCENDING Stils. Bei allen Steuerelementen der virtuellen Listenansicht wird standardmäßig der LVS_AUTOARRANGE Stil verwendet.

Damit Elemente in der Liste angezeigt werden können, müssen Sie zuerst die LVM_SETITEMCOUNT-Nachricht senden, entweder explizit oder mithilfe des makros ListView_SetItemCountEx .

Die folgenden Nachrichten werden im LVS_OWNERDATA-Format nicht unterstützt: LVM_ENABLEGROUPVIEW, LVM_GETITEMTEXT, LVM_SETTILEINFO und LVM_MAPIDTOINDEX.

Kompatibilitätsprobleme

Alle vier Listenansichtsstile – Symbol, kleines Symbol, Liste und Berichtsansicht – unterstützen den LVS_OWNERDATA-Stil . Listenansichtssteuerelemente, die die LVS_OWNERDATA formatieren, speichern keine elementspezifischen Informationen. Daher sind die einzigen gültigen Elementstatusflags, die Sie auf ein Element anwenden können , LVIS_SELECTED und LVIS_FOCUSED. Es werden keine anderen Zustandsinformationen gespeichert. Insbesondere behält das Listenansicht-Steuerelement für jedes Element keinen Zustand bei oder überlagert Bilder. Sie können ihre Anwendung jedoch vom Listenansichtssteuerelement auf diese Bilder abfragen lassen, indem Sie eine LVM_SETCALLBACKMASK Nachricht senden.

Die meisten Listenansichts-Steuerelementmeldungen und die zugehörigen Makros werden vollständig unterstützt. Einige Nachrichten weisen jedoch Einschränkungen auf oder werden nicht unterstützt, wenn Sie den LVS_OWNERDATA-Stil verwenden. In der folgenden Tabelle sind die betroffenen Nachrichten zusammengefasst.

Nachricht Einschränkung
LVM_ARRANGE Unterstützt den LVA_SNAPTOGRID-Stil nicht.
LVM_DELETEALLITEMS Legt die Elementanzahl auf 0 (null) fest und löscht alle internen Auswahlvariablen, aber es werden keine Elemente gelöscht. Es wird ein Benachrichtigungsrückruf ausgeführt.
LVM_DELETEITEM Wird nur für die Auswahlintegrität unterstützt und löscht kein Element tatsächlich.
LVM_GETITEMSTATE Gibt nur Fokus- und Auswahlzustände zurück (d. a. die vom Listenansicht-Steuerelement gespeicherten Zustände).
LVM_GETNEXTITEM Unterstützt die Suchkriterien der Listenansicht LVNI_CUT, LVNI_HIDDEN oder LVNI_DROPHILITED nicht. Alle anderen Kriterien werden unterstützt.
LVM_GETWORKAREAS Wird nicht unterstützt.
LVM_INSERTITEM Wird nur für die Auswahlintegrität unterstützt.
LVM_SETITEM Wird nicht unterstützt. Verwenden Sie zum Festlegen des Elementzustands die ListView_SetItemState Meldung.
LVM_SETITEMCOUNT Legt die Anzahl der Elemente fest, die derzeit in der Liste enthalten sind. Wenn das Listenansicht-Steuerelement eine Benachrichtigung sendet, die Daten für ein Element bis zur maximalen Menge anfordert, muss der Besitzer bereit sein, diese Daten anzugeben. Die Nachrichtenparameter unterstützen Steuerelemente für virtuelle Listenansichten.
LVM_SETITEMPOSITION Wird nicht unterstützt.
LVM_SETITEMSTATE Ermöglicht, dass nur die Auswahl- und Fokuszustände für das Element geändert werden.
LVM_SETITEMTEXT Wird nicht unterstützt. Es liegt in der Verantwortung der Anwendung, die Artikeltexte zu verwalten.
LVM_SETWORKAREAS Wird nicht unterstützt.
LVM_SORTITEMS Wird nicht unterstützt. Es liegt in der Verantwortung der Anwendung, die Elemente in der gewünschten Reihenfolge darzustellen.

 

Behandeln von Benachrichtigungscodes für virtuelle List-View-Steuerelemente

Listenansichtssteuerelemente im LVS_OWNERDATA-Format senden die gleichen Benachrichtigungscodes wie andere Listenansichtssteuerelemente und zwei zusätzliche Steuerelemente: LVN_ODCACHEHINT und LVN_ODFINDITEM. Im Folgenden finden Sie die gängigsten Benachrichtigungen, die das Listenansichtssteuerelement mit der LVS_OWNERDATA-Format sendet.

Benachrichtigung Beschreibung
LVN_GETDISPINFO Ein virtuelles Listenansichtssteuerelement verwaltet nur sehr wenige Elementinformationen. Daher wird häufig der LVN_GETDISPINFO Benachrichtigungscode gesendet, um Elementinformationen anzufordern. Diese Nachricht wird in etwa auf die gleiche Weise wie Rückrufelemente in einem Standardlistensteuerelement behandelt. Da die Anzahl der vom Steuerelement unterstützten Elemente sehr groß sein kann, verbessert das Zwischenspeichern von Elementdaten die Leistung. Bei der Verarbeitung LVN_GETDISPINFO versucht der Besitzer des Steuerelements zunächst, angeforderte Elementinformationen aus dem Cache anzugeben (weitere Informationen finden Sie unter Cacheverwaltung). Wenn das angeforderte Element nicht zwischengespeichert wird, muss der Besitzer bereit sein, die Informationen auf andere Art und Art zur Verfügung zu stellen.
LVN_ODCACHEHINT Eine virtuelle Listenansicht sendet den LVN_ODCACHEHINT Benachrichtigungscode, um die Optimierung des Caches zu unterstützen. Der Benachrichtigungscode stellt inklusive Indexwerte für einen Bereich von Elementen bereit, die zwischengespeichert werden sollen. Nach Erhalt des Benachrichtigungscodes muss der Besitzer bereit sein, den Cache mit Elementinformationen für den angeforderten Bereich zu laden, damit die Informationen sofort verfügbar sind, wenn eine LVN_GETDISPINFO Nachricht gesendet wird.
LVN_ODFINDITEM Der LVN_ODFINDITEM Benachrichtigungscode wird von einem virtuellen Listenansichtssteuerelement gesendet, wenn das Steuerelement den Besitzer benötigt, um ein bestimmtes Rückrufelement zu finden. Der Benachrichtigungscode wird gesendet, wenn das Listenansichtssteuerelement Schnellschlüsselzugriff empfängt oder wenn es eine LVM_FINDITEM-Nachricht empfängt. Suchinformationen werden in Form einer LVFINDINFO-Struktur gesendet, die ein Element der NMLVFINDITEM-Struktur ist. Der Besitzer muss bereit sein, nach einem Element zu suchen, das den Informationen entspricht, die vom Listenansichtssteuerelement angegeben werden. Der Besitzer gibt den Index des Elements bei erfolgreicher Ausführung oder -1 zurück, wenn kein übereinstimmende Element gefunden wird.

 

Cacheverwaltung

Ein Listenansicht-Steuerelement mit dem LVS_OWNERDATA-Stil erzeugt eine große Anzahl von LVN_GETDISPINFO Benachrichtigungscodes und, um den Cache zu optimieren, eine LVN_ODCACHEHINT Nachricht. LVN_ODCACHEHINT Nachrichten enthalten Informationen zu den empfohlenen Elementen, die in den Cache aufgenommen werden sollen. Diese Nachrichten werden als WM_NOTIFY Nachrichten gesendet, wobei der lParam-Wert als Adresse einer NMLVCACHEHINT-Struktur fungiert.

Die NMLVCACHEHINT-Struktur enthält zwei ganzzahlige Member, iFrom und iTo, die die inklusiven Endpunkte eines Bereichs von Elementen darstellen, die höchstwahrscheinlich benötigt werden. Der Besitzer muss bereit sein, den Cache mit den Elementinformationen für jedes Element innerhalb des empfohlenen Bereichs zu laden.

Das Listensteuerelement benötigt häufig Elementinformationen für das erste Element (Offset 0). Der LVN_ODCACHEHINT Benachrichtigungscode enthält möglicherweise nicht immer element 0, muss aber immer im Cache enthalten sein.

Auf die letzten Elemente in der Liste wird häufig zugegriffen. Daher kann der Besitzer einen zweiten Cache beibehalten, der die Elemente am Ende der Liste enthält. Der angeforderte Bereich von LVN_ODCACHEHINT kann anhand des Endcaches überprüft werden, um ihn automatisch verfügbar zu machen, anstatt jedes Mal denselben Endbereich neu zu laden.

List-View Arbeitsbereiche

Listenansichtssteuerelemente unterstützen Arbeitsbereiche, bei denen es sich um rechteckige virtuelle Bereiche handelt, die das Listenansicht-Steuerelement zum Anordnen seiner Elemente verwendet. Ein Arbeitsbereich ist kein Fenster und kann keinen sichtbaren Rahmen aufweisen. Standardmäßig verfügt das Listenansicht-Steuerelement über keine Arbeitsbereiche. Indem Sie einen Arbeitsbereich erstellen, können Sie links, oben oder rechts von den Elementen einen leeren Rahmen erstellen oder eine horizontale Bildlaufleiste anzeigen lassen, wenn normalerweise keine vorhanden wäre.

Wenn ein Arbeitsbereich erstellt wird, werden Elemente, die sich innerhalb des Arbeitsbereichs befinden, Mitglieder des Arbeitsbereichs. Ebenso wird das Element, wenn ein Element in einen Arbeitsbereich verschoben wird, zu einem Mitglied dieses Arbeitsbereichs. Wenn ein Element nicht innerhalb eines Arbeitsbereichs liegt, wird es automatisch Mitglied des ersten Arbeitsbereichs (Index 0). Um ein neues Element in einem bestimmten Arbeitsbereich zu platzieren, müssen Sie zuerst das Element erstellen und dann entweder die LVM_SETITEMPOSITION oder die LVM_SETITEMPOSITION32 Nachricht verwenden, um es in den gewünschten Arbeitsbereich zu verschieben.

Die folgende Abbildung ist ein Beispiel für ein Listenansicht-Steuerelement, das vier Arbeitsbereiche enthält, die sich jeweils in einem anderen Quadranten des Clientbereichs befinden.

Screenshot eines Listenansichtssteuerelements mit einem Arbeitsbereich in jedem Quadranten des Clientbereichs

Mehrere Arbeitsbereiche können zum Erstellen verschiedener Bereiche innerhalb einer Ansicht verwendet werden. Sie können Bereiche in einer einzelnen Ansicht erstellen, die unterschiedliche Bedeutungen haben. Beispielsweise kann eine Ansicht eines Dateisystems über einen Bereich für Lese-/Schreibdateien und einen weiteren Bereich für schreibgeschützte Dateien verfügen. Der Benutzer kann Elemente kategorisieren, indem er sie in verschiedenen Arbeitsbereichen platziert. Wenn eine Datei in den schreibgeschützten Bereich verschoben wird, wird sie automatisch schreibgeschützt.

Mehrere Arbeitsbereiche können sich überschneiden, aber alle Elemente, die sich innerhalb der Schnittmenge befinden, werden Mitglieder des Bereichs mit dem unteren Index. Daher ist es am besten, diese Situation zu vermeiden. Beim Sortieren mehrerer Arbeitsbereiche werden die Elemente im Vergleich zu den anderen Elementen im selben Arbeitsbereich sortiert.

Die Anzahl der Arbeitsbereiche kann mit der LVM_GETNUMBEROFWORKAREAS-Nachricht abgerufen werden. Die Arbeitsbereiche werden mit der LVM_SETWORKAREAS Nachricht geändert und können mit der LVM_GETWORKAREAS Nachricht abgerufen werden. Beide Nachrichten verwenden die Adresse eines Arrays von RECT-Strukturen als lParam und die Anzahl der RECT-Strukturen als wParam. Die linken und oberen Member dieser Strukturen geben die Koordinaten der oberen linken Ecke (den Ursprung) des Arbeitsbereichs an, und die rechte und untere Member geben die untere rechte Ecke des Arbeitsbereichs an. Alle Koordinaten befinden sich in Clientkoordinaten der Listenansicht. Die maximal zulässige Anzahl von Arbeitsbereichen wird durch den wert der LV_MAX_WORKAREAS definiert.

Das Ändern des Arbeitsbereichs hat keine Auswirkungen auf Listenansichtssteuerelemente, die über die LVS_LIST oder LVS_REPORT Ansicht verfügen, aber die Arbeitsbereiche werden beibehalten, wenn der Ansichtstyp geändert wird. Mit den Ansichten LVS_ICON und LVS_SMALLICON kann der Arbeitsbereich geändert werden, um die Anzeige der Elemente zu ändern. Wenn die Breite des Arbeitsbereichs (rechts – links) größer als die Clientbreite des Steuerelements ist, werden die Elemente mit dieser Breite umschlossen, und die horizontale Bildlaufleiste wird angezeigt. Wenn die Breite des Arbeitsbereichs kleiner als die Breite des Clientbereichs des Steuerelements ist, werden die Elemente innerhalb des Arbeitsbereichs und nicht im Clientbereich umschlossen. Wenn Sie den linken oder oberen Member auf einen positiven Wert festlegen, werden die Elemente ab dem Arbeitsbereich angezeigt, wodurch ein leerer Abstand zwischen dem Rand des Steuerelements und den Elementen entsteht. Zwischen dem rechten Rand des Steuerelements und den Elementen kann auch ein leerer Bereich erstellt werden, indem die Breite des Arbeitsbereichs kleiner als die Clientbreite des Steuerelements ist.

List-View Bildlisten

Standardmäßig zeigt ein Listenansicht-Steuerelement keine Elementbilder an. Zum Anzeigen von Elementbildern müssen Sie Bildlisten erstellen und diese dem Steuerelement zuordnen. Ein Listenansichtssteuerelement kann über drei Bildlisten verfügen:

  • Eine Bildliste, die Symbole in voller Größe enthält, die angezeigt werden, wenn sich das Steuerelement in der Symbolansicht befindet.
  • Eine Bildliste, die kleine Symbole enthält, die angezeigt werden, wenn sich das Steuerelement in der kleinen Symbolansicht, Listenansicht oder Berichtsansicht befindet.
  • Eine Bildliste, die Zustandsbilder enthält, die links neben dem Symbol in voller Größe oder kleinem Symbol angezeigt werden. Sie können Zustandsbilder wie aktivierte und deaktivierte Kontrollkästchen verwenden, um anwendungsdefinierte Elementzustände anzugeben. Zustandsbilder werden in der Symbolansicht, der Kleinen Symbolansicht, der Listenansicht und der Berichtsansicht angezeigt.

Die Bildlisten in voller Größe und kleinen Symbolen können auch Überlagerungsbilder enthalten, die transparent über die Elementsymbole gezeichnet werden.

So verwenden Sie Überlagerungsbilder in einem Listenansichtssteuerelement:

  1. Rufen Sie die funktion ImageList_SetOverlayImage auf, um einem Bild in den Bildlisten mit voller Größe und kleinen Symbolen einen Überlagerungsbildindex zuzuweisen. Ein Überlagerungsbild wird durch einen 1-basierten Index identifiziert.
  2. Sie können einem Element einen Überlagerungsbildindex zuordnen, wenn Sie das makro ListView_InsertItem oder ListView_SetItem aufrufen. Verwenden Sie das INDEXTOOVERLAYMASK-Makro , um einen Überlagerungsbildindex im Zustandselement der LVITEM-Struktur des Elements anzugeben. Sie müssen auch die LVIS_OVERLAYMASK Bits im stateMask-Element festlegen.

Wenn eine Statusbildliste angegeben wird, reserviert ein Listenansichtssteuerelement Platz links neben dem Symbol jedes Elements für ein Zustandsbild.

Um einem Element ein Zustandsbild zuzuordnen, verwenden Sie das INDEXTOSTATEIMAGEMASK-Makro , um einen Zustandsbildindex im Zustandselement der LVITEM-Struktur anzugeben. Der Index identifiziert ein Bild in der Statusbildliste des Steuerelements. Obwohl Bildlistenindizes nullbasiert sind, verwendet das Steuerelement one-based indexes, um Zustandsbilder zu identifizieren. Ein Zustandsbildindex von 0 (null) gibt an, dass ein Element über kein Zustandsbild verfügt.

Wenn ein Listenansicht-Steuerelement zerstört wird, zerstört es standardmäßig die ihm zugewiesenen Bildlisten. Wenn ein Listenansicht-Steuerelement jedoch über den LVS_SHAREIMAGELISTS Fensterstil verfügt, ist die Anwendung dafür verantwortlich, die Bildlisten zu zerstören, wenn sie nicht mehr verwendet werden. Sie sollten diesen Stil angeben, wenn Sie die gleichen Bildlisten mehreren Listenansichtssteuerelementen zuweisen. Andernfalls versuchen möglicherweise mehrere Steuerelemente, dieselbe Bildliste zu zerstören.

List-View Elemente und Unterelemente

Jedes Element in einem Listenansicht-Steuerelement verfügt über ein Symbol, eine Bezeichnung, einen aktuellen Zustand und einen von der Anwendung definierten Wert. Mithilfe von Listenansichtsmeldungen können Sie Elemente hinzufügen, ändern und löschen sowie Informationen zu Elementen abrufen.

Jedes Element kann ein oder mehrere Unterelemente aufweisen. Ein Unterelement ist eine Zeichenfolge, die in der Berichtsansicht in einer Spalte angezeigt wird, die vom Symbol und der Bezeichnung des Elements getrennt ist. Um den Text eines Unterelements anzugeben, verwenden Sie die LVM_SETITEMTEXT oderLVM_SETITEM Nachricht. Alle Elemente in einem Listenansicht-Steuerelement verfügen über die gleiche Anzahl von Unterelementen. Die Anzahl der Unterelemente wird durch die Anzahl der Spalten im Listenansicht-Steuerelement bestimmt. Wenn Sie einem Listenansicht-Steuerelement eine Spalte hinzufügen, geben Sie den zugehörigen Unterelementindex an.

Die LVITEM-Struktur definiert ein Listenansichtselement oder Unterelement. Das iItem-Element ist der nullbasierte Index des Elements. Das iSubItem-Element ist der 1-basierte Index eines Unterelements oder null, wenn die Struktur Informationen zu einem Element enthält. Zusätzliche Member geben den Text, das Symbol, den Status und die Elementdaten des Elements an. Elementdaten sind ein anwendungsdefinierter Wert, der einem Listenansichtselement zugeordnet ist.

Um einem Listenansicht-Steuerelement ein Element hinzuzufügen, verwenden Sie die LVM_INSERTITEM Nachricht, und geben Sie die Adresse einer LVITEM-Struktur an. Bevor Sie mehrere Elemente hinzufügen, können Sie dem Steuerelement eine LVM_SETITEMCOUNT Nachricht senden und die Anzahl der Elemente angeben, die das Steuerelement letztendlich enthalten wird. Mit dieser Meldung kann das Listenansicht-Steuerelement seine internen Datenstrukturen nur einmal neu zuordnen und nicht jedes Mal, wenn Sie ein Element hinzufügen. Sie können die Anzahl der Elemente in einem Listenansichtssteuerelement mithilfe der LVM_GETITEMCOUNT Nachricht bestimmen. Wenn Sie einem Listenansicht-Steuerelement eine große Anzahl von Elementen hinzufügen, können Sie den Prozess beschleunigen, indem Sie das Neuzeichnen vor dem Hinzufügen der Elemente deaktivieren und dann das Neuzeichnen aktivieren, nachdem die Elemente hinzugefügt wurden. Verwenden Sie die WM_SETREDRAW Meldung, um das Neuzeichnen zu aktivieren und zu deaktivieren.

Um die Attribute eines Listenansichtselements zu ändern, verwenden Sie die LVM_SETITEM Nachricht, und geben Sie die Adresse einer LVITEM-Struktur an. Der Maskenmember dieser Struktur gibt die Elementattribute an, die Sie ändern möchten. Wenn Sie beispielsweise nur den Text eines Elements oder Unterelements ändern möchten, verwenden Sie die LVM_SETITEMTEXT Nachricht.

Um Informationen zu einem Listenansichtselement abzurufen, verwenden Sie die LVM_GETITEM Nachricht, und geben Sie die Adresse der lvitem-Struktur an, die ausgefüllt werden soll. Der Maskenmember dieser Struktur gibt die abzurufenden Elementattribute an. Um nur den Text eines Elements oder Unterelements abzurufen, verwenden Sie die LVM_GETITEMTEXT Nachricht.

Um ein Listenansichtselement zu löschen, verwenden Sie die LVM_DELETEITEM Meldung. Sie können alle Elemente in einem Listenansicht-Steuerelement löschen, indem Sie die LVM_DELETEALLITEMS Meldung verwenden.

List-View Elementstatus

Der Status eines Elements ist ein Wert, der die Verfügbarkeit des Elements angibt, Benutzeraktionen angibt oder anderweitig die status des Elements widerspiegelt. Ein Listenansichtssteuerelement ändert einige Zustandsbits, z. B. wenn der Benutzer ein Element auswählt. Eine Anwendung kann andere Zustandsbits ändern, um das Element zu deaktivieren oder auszublenden oder ein Überlagerungsbild oder zustandsbild anzugeben. Weitere Informationen zu Überlagerungsbildern und Zustandsbildern finden Sie unter Listenansichtsbildlisten.

Der Zustand eines Elements wird vom State Member der LVITEM-Struktur angegeben. Wenn Sie den Status eines Elements angeben oder ändern, gibt der stateMask-Member an, welche Zustandsbits Sie ändern müssen. Sie können den Status eines Elements mithilfe der LVM_SETITEMSTATE Nachricht ändern. Sie können den Status eines Elements angeben, wenn Sie es erstellen oder seine Attribute ändern, indem Sie die LVM_SETITEM Meldung verwenden. Um den aktuellen Zustand eines Elements zu bestimmen, verwenden Sie die LVM_GETITEMSTATE oderLVM_GETITEM Meldung.

Um das Überlagerungsbild eines Elements festzulegen, muss der stateMask-Member der LVITEM-Struktur den LVIS_OVERLAYMASK-Wert enthalten, und der Zustandsmember muss den 1-basierten Index des Überlagerungsbilds enthalten, das mithilfe des INDEXTOOVERLAYMASK-Makros um 8 Bit verschoben wurde. Der Index kann null sein, um kein Überlagerungsbild anzugeben.

Um das Zustandsbild eines Elements festzulegen, muss das stateMask-Element der LVITEM-Struktur den LVIS_STATEIMAGEMASK-Wert enthalten, und das Zustandselement muss den einbasierten Index des Zustandsbilds enthalten, der mithilfe des INDEXTOSTATEIMAGEMASK-Makros um 12 Bit nach links verschoben wurde. Der Index kann null sein, um kein Zustandsbild anzugeben.

Rückrufelemente und die Rückrufmaske

Für jedes seiner Elemente speichert ein Listenansicht-Steuerelement in der Regel den Bezeichnungstext, den Bildlistenindex der Symbole des Elements und eine Reihe von Bitflags für den Status des Elements. Sie können Rückrufelemente definieren oder die Rückrufmaske des Steuerelements ändern, um anzugeben, dass die Anwendung anstelle des Steuerelements einige oder alle dieser Informationen speichert. Sie können Rückrufe verwenden, wenn Ihre Anwendung einige dieser Informationen speichert.

Ein Rückrufelement in einem Listenansicht-Steuerelement ist ein Element, für das die Anwendung den Text- oder Symbolindex oder beides speichert. Sie können Rückrufelemente definieren, wenn Sie die LVM_INSERTITEM Nachricht senden, um dem Listenansichtssteuerelement ein Element hinzuzufügen. Wenn die Anwendung den Text für das Element oder Unterelement speichert, legen Sie den pszText-Member der LVITEM-Struktur des Elements auf LPSTR_TEXTCALLBACK fest. Wenn die Anwendung den Symbolindex für ein Element speichert, legen Sie den iImage-Member der LVITEM-Struktur des Elements auf I_IMAGECALLBACK fest.

Die Rückrufmaske eines Listenansicht-Steuerelements besteht aus einer Reihe von Bitflags, die die Elementzustände angeben, für die die Anwendung anstelle des Steuerelements die aktuellen Daten speichert. Die Rückrufmaske gilt für alle Elemente des Steuerelements, im Gegensatz zur Rückrufelementbezeichnung, die für ein bestimmtes Element gilt. Die Rückrufmaske ist standardmäßig 0 (null), was bedeutet, dass das Listenansicht-Steuerelement alle Elementzustandsinformationen speichert. Nachdem Sie ein Listenansicht-Steuerelement erstellt und seine Elemente initialisiert haben, können Sie die LVM_SETCALLBACKMASK Nachricht senden, um die Rückrufmaske zu ändern. Um die aktuelle Rückrufmaske abzurufen, senden Sie die LVM_GETCALLBACKMASK Nachricht.

Wenn ein Listenansicht-Steuerelement ein Listenansichtselement anzeigen oder sortieren muss, für das die Anwendung Rückrufinformationen speichert, sendet das Steuerelement den LVN_GETDISPINFO Benachrichtigungscode an das übergeordnete Fenster des Steuerelements. Diese Meldung gibt eine NMLVDISPINFO-Struktur an, die den Typ der erforderlichen Informationen enthält und das abzurufende Element oder Unterelement identifiziert. Das übergeordnete Fenster muss LVN_GETDISPINFO verarbeiten, um die angeforderten Daten bereitzustellen.

Wenn das Listenansicht-Steuerelement eine Änderung der Rückrufinformationen eines Elements erkennt, z. B. eine Änderung im Text, symbol oder Zustandsinformationen, sendet das Steuerelement einen LVN_SETDISPINFO Benachrichtigungscode, um Sie über die Änderung zu informieren.

Wenn Sie die Attribute oder Zustandsbits eines Rückrufelements ändern, verwenden Sie die LVM_UPDATE Nachricht, um zu erzwingen, dass das Steuerelement das Element neu streicht. Diese Meldung bewirkt auch, dass das Steuerelement seine Elemente anordnet, wenn es den LVS_AUTOARRANGE Stil aufweist. Sie können die LVM_REDRAWITEMS Meldung verwenden, um einen Bereich von Elementen neu zu zeichnen, indem Sie die entsprechenden Teile des Clientbereichs des Listenansicht-Steuerelements ungültig machen.

Durch die effektive Verwendung von Rückrufelementen und der Rückrufmaske können Sie sicherstellen, dass jedes Elementattribut nur an einem Ort verwaltet wird. Dies kann Ihre Anwendung vereinfachen, aber der einzige Speicherplatz, der gespeichert wird, ist der Speicher, der andernfalls zum Speichern von Elementbezeichnungen und Unterelementtext erforderlich wäre.

Position des List-View-Elements

Jedes Listenansichtselement hat eine Position und Größe, die Sie mithilfe von Nachrichten abrufen und festlegen können. Sie können auch bestimmen, welches Element sich ggf. an einer angegebenen Position befindet. Die Position der Listenansichtselemente wird in Ansichtskoordinaten angegeben, bei denen es sich um Clientkoordinaten handelt, die durch die Bildlaufposition versetzt werden.

Um die Position eines Elements abzurufen und festzulegen, verwenden Sie die LVM_GETITEMPOSITION und LVM_SETITEMPOSITION Nachrichten. LVM_GETITEMPOSITION funktioniert für alle Ansichten, aber LVM_SETITEMPOSITION funktioniert nur für Symbolansichten und kleine Symbolansichten.

Sie können bestimmen, welches Element sich an einem bestimmten Speicherort befindet, indem Sie die LVM_HITTEST Nachricht verwenden.

Um das umgebende Rechteck für ein Listenelement oder nur für dessen Symbol oder Bezeichnung abzurufen, verwenden Sie die LVM_GETITEMRECT Nachricht.

Anordnen, Sortieren und Suchen von Elementen

Sie können Listenansichtsnachrichten verwenden, um Elemente anzuordnen und zu sortieren und Elemente basierend auf ihren Attributen oder Positionen zu suchen. Beim Anordnen werden Elemente neu positioniert, die in einem Raster ausgerichtet werden sollen, aber die Indizes der Elemente ändern sich nicht. Beim Sortieren wird die Reihenfolge der Elemente (und der entsprechenden Indizes) geändert und dann entsprechend neu positioniert. Sie können Elemente nur in Symbolansichten und kleinen Symbolansichten anordnen, aber Sie können Elemente in jeder Ansicht sortieren. Um Elemente zu finden, senden Sie Listenansichtsmeldungen, die einen Elementspeicherort oder eine Eigenschaft angeben.

Verwenden Sie zum Anordnen von Elementen die LVM_ARRANGE Nachricht. Sie können sicherstellen, dass Elemente jederzeit angeordnet sind, indem Sie die LVS_AUTOARRANGE Fensterstil angeben.

Verwenden Sie zum Sortieren von Elementen die LVM_SORTITEMS Nachricht. Wenn Sie mithilfe dieser Nachricht sortieren, geben Sie eine anwendungsdefinierte Rückruffunktion an, die das Listenansicht-Steuerelement aufruft, um die relative Reihenfolge von zwei beliebigen Elementen zu vergleichen. Das Steuerelement übergibt die Elementdaten, die jedem der beiden Elemente zugeordnet sind, an die Vergleichsfunktion. Die Elementdaten sind der Wert, der im lParam-Element der LVITEM-Struktur des Elements angegeben wurde, als er in die Liste eingefügt wurde. Wenn Sie die entsprechenden Elementdaten angeben und eine entsprechende Vergleichsfunktion bereitstellen, können Sie Elemente nach ihrer Bezeichnung, nach einem beliebigen Unterelement oder nach einer anderen Eigenschaft sortieren. Beachten Sie, dass beim Sortieren von Elementen die entsprechenden Unterelemente nicht neu sortiert werden. Wenn Elemente neu sortiert werden, werden die entsprechenden Unterelemente mitgeführt; das heißt, ganze Zeilen werden zusammengehalten. Um die Spalten getrennt voneinander zu sortieren und die Unterelemente von ihren Elementen zu trennen, müssen Sie die Spalten nach dem Sortieren mithilfe von LVM_SETITEM neu generieren.

Sie können sicherstellen, dass ein Listenansichtssteuerelement immer sortiert ist, indem Sie das LVS_SORTASCENDING - oder LVS_SORTDESCENDING Fensterformat angeben. Steuerelemente mit diesen Formatvorlagen verwenden den Bezeichnungstext der Elemente, um sie in aufsteigender oder absteigender Reihenfolge zu sortieren. Sie können keine Vergleichsfunktion bereitstellen, wenn Sie diese Fensterstile verwenden. Wenn ein Listenansicht-Steuerelement über einen dieser Stile verfügt, schlägt eine LVM_INSERTITEM Nachricht fehl, wenn Sie versuchen, ein Element einzufügen, das LPSTR_TEXTCALLBACK als pszText-Member seiner LVITEM-Struktur aufweist.

Sie können ein Listenansichtselement mit bestimmten Eigenschaften finden, indem Sie die LVM_FINDITEM Nachricht verwenden. Sie können ein Listenansichtselement finden, das sich in einem angegebenen Zustand befindet und eine angegebene Beziehung zu einem bestimmten Element aufweist, indem Sie die LVM_GETNEXTITEM Nachricht verwenden. Beispielsweise können Sie das nächste ausgewählte Element rechts neben einem angegebenen Element abrufen.

List-View Spalten

Spalten steuern, wie Elemente und ihre Unterelemente in der Berichtsansicht angezeigt werden. Jede Spalte hat einen Titel und eine Breite und ist einem bestimmten Unterelement zugeordnet. Unterelement null ist das Symbol und die Bezeichnung des Elements. Die Attribute einer Spalte werden durch eine LVCOLUMN-Struktur definiert.

Um einem Listenansichtssteuerelement eine Spalte hinzuzufügen, verwenden Sie die LVM_INSERTCOLUMN Nachricht. Um eine Spalte zu löschen, verwenden Sie die LVM_DELETECOLUMN Nachricht.

Hinweis

Das Löschen von Spalte Null eines Listenansichtssteuerelements wird nur in ComCtl32.dll Version 6 und höher unterstützt. Version 5 unterstützt auch das Löschen von Spalte 0, jedoch erst, nachdem Sie CCM_SETVERSION verwendet haben, um die Version auf 5 oder höher festzulegen. Versionen vor Version 5 unterstützen das Löschen von Spalte 0 nicht.

 

Sie können die Eigenschaften einer vorhandenen Spalte mithilfe der LVM_GETCOLUMN und LVM_SETCOLUMN Nachrichten abrufen und ändern. Um die Breite einer Spalte abzurufen oder zu ändern, verwenden Sie die LVM_GETCOLUMNWIDTH und LVM_SETCOLUMNWIDTH Nachrichten.

Sofern die LVS_NOCOLUMNHEADER Fensterstil nicht angegeben ist, werden Spaltenüberschriften in der Berichtsansicht angezeigt. Der Benutzer kann auf eine Spaltenüberschrift klicken, wodurch ein LVN_COLUMNCLICK Benachrichtigungscode an das übergeordnete Fenster gesendet wird. In der Regel sortiert das übergeordnete Fenster das Listenansichtssteuerelement nach der angegebenen Spalte, wenn dieses Klicken erfolgt. Der Benutzer kann die Spaltenführungen auch zwischen die Kopfzeilen ziehen, um die Spalten zu vergrößern.

Listenansichtssteuerelemente können Bilder neben Spaltentiteln anzeigen. Um dieses Feature zu implementieren, geben Sie den wert LVCF_IMAGE an, und weisen Sie den Index des Images dem iImage-Member in der LVCOLUMN-Struktur zu.

Listenansichtssteuerelemente können die Reihenfolge festlegen, in der Spalten angezeigt werden. Um dieses Feature zu implementieren, geben Sie den wert LVCF_ORDER an, und weisen Sie die Spaltenreihenfolge dem iOrder-Member in der LVCOLUMN-Struktur zu. Die Spaltenreihenfolge ist nullbasiert und befindet sich in der Reihenfolge von links nach rechts. Null gibt z. B. die äußerst linke Spalte an.

List-View Scrollposition

Sofern nicht die LVS_NOSCROLL Fensterstil angegeben ist, kann ein Listenansichtssteuerelement scrollen, um mehr Elemente anzuzeigen, als in den Clientbereich des Steuerelements passen können. Sie können die Bildlaufposition eines Listenansichtssteuerelements und zugehörige Informationen abrufen, ein Listenansicht-Steuerelement um einen angegebenen Betrag scrollen oder ein Listenansichtssteuerelement scrollen, sodass ein angegebenes Listenelement sichtbar ist.

In der Symbolansicht oder kleinen Symbolansicht wird die aktuelle Bildlaufposition durch den Ansichtsursprung definiert. Der Ansichtsursprung ist der Satz von Koordinaten relativ zum sichtbaren Bereich des Listenansichtssteuerelements, die den Ansichtskoordinaten (0, 0) entsprechen. Um den aktuellen Ansichtsursprung abzurufen, verwenden Sie die LVM_GETORIGIN Nachricht. Diese Nachricht sollte nur in der Symbol- oder kleinen Symbolansicht verwendet werden. Es gibt einen Fehler in der Listen- oder Berichtsansicht zurück.

In der Listen- oder Berichtsansicht wird die aktuelle Bildlaufposition durch den obersten Index definiert. Der oberste Index ist der Index des ersten sichtbaren Elements im Listenansicht-Steuerelement. Um den aktuellen obersten Index abzurufen, verwenden Sie die LVM_GETTOPINDEX Meldung. Diese Nachricht gibt ein gültiges Ergebnis nur in der Listen- oder Berichtsansicht zurück. es gibt null in der Symbolansicht oder kleinen Symbolansicht zurück.

Sie können die LVM_GETVIEWRECT Nachricht verwenden, um das umgebende Rechteck aller Elemente in einem Listenansichtssteuerelement relativ zum sichtbaren Bereich des Steuerelements abzurufen.

Die LVM_GETCOUNTPERPAGE Nachricht gibt die Anzahl der Elemente zurück, die auf eine Seite des Listenansicht-Steuerelements passen. Diese Nachricht gibt ein gültiges Ergebnis nur in Listen- und Berichtsansichten zurück. in Symbolansichten und kleinen Symbolansichten gibt es die Gesamtanzahl der Elemente zurück.

Verwenden Sie die LVM_SCROLL Nachricht, um ein Listenansichtssteuerelement um einen bestimmten Betrag zu scrollen. Mithilfe der LVM_ENSUREVISIBLE Nachricht können Sie bei Bedarf im Listenansichtssteuerelement scrollen, um sicherzustellen, dass ein angegebenes Element sichtbar ist.

List-View Bearbeitung von Bezeichnungen

Ein Listenansicht-Steuerelement mit der LVS_EDITLABELS Fensterformat ermöglicht es einem Benutzer, Elementbeschriftungen an Ort und Stelle zu bearbeiten. Der Benutzer beginnt mit der Bearbeitung, indem er auf die Bezeichnung eines Elements mit dem Fokus klickt. Alternativ kann eine Anwendung automatisch mit der Bearbeitung beginnen, indem sie die LVM_EDITLABEL Nachricht verwendet. Das Listenansicht-Steuerelement benachrichtigt das übergeordnete Fenster, wenn die Bearbeitung beginnt und wann es abgebrochen oder abgeschlossen wird. Wenn die Bearbeitung abgeschlossen ist, ist das übergeordnete Fenster für die Aktualisierung der Bezeichnung des Elements verantwortlich, falls erforderlich.

Wenn die Beschriftungsbearbeitung beginnt, wird ein Bearbeitungssteuerelement erstellt, positioniert und initialisiert. Bevor es angezeigt wird, sendet das Listenansicht-Steuerelement seinem übergeordneten Fenster einen LVN_BEGINLABELEDIT Benachrichtigungscode. Wenn Sie den Bearbeitungsprozess der Bezeichnung ändern müssen, können Sie einen Handler für diese Benachrichtigung implementieren.

Eine Verwendung für einen LVN_BEGINLABELEDIT Benachrichtigungshandler besteht darin, zu steuern, welche Bezeichnungen der Benutzer bearbeiten kann. Um die Bearbeitung von Bezeichnungen zu verhindern, geben Sie einen Wert ohne Zero zurück. Um die Bezeichnungsbearbeitung anzupassen, lassen Sie den Benachrichtigungshandler ein Handle für das Bearbeitungssteuerelement abrufen, indem eine LVM_GETEDITCONTROL Nachricht an das Listenansicht-Steuerelement gesendet wird. Sobald Sie über dieses Handle verfügen, können Sie das Bearbeitungssteuerelement anpassen, indem Sie die üblichen EM_XXX Nachrichten senden. Um instance die Textmenge zu begrenzen, die ein Benutzer eingeben kann, senden Sie dem Bearbeitungssteuerelement eine EM_LIMITTEXT Nachricht. Sie können den Standardtext des Bearbeitungssteuerelements mit SetWindowText ändern. Sie können das Bearbeitungssteuerelement sogar unterklassen, um ungültige Zeichen abzufangen und zu verwerfen.

Wenn die Bearbeitung von Bezeichnungen abgebrochen oder abgeschlossen ist, sendet ein Listenansichtssteuerelement dem übergeordneten Fenster einen LVN_ENDLABELEDIT Benachrichtigungscode. Der lParam-Parameter ist die Adresse einer NMLVDISPINFO-Struktur . Das Elementmember dieser Struktur ist eine LVITEM-Struktur , deren iItem-Member das Element identifiziert. Wenn die Bearbeitung abgebrochen wird, ist das pszText-Element der LVITEM-StrukturNULL. andernfalls ist pszText die Adresse des bearbeiteten Texts. Das übergeordnete Fenster ist für die Aktualisierung der Bezeichnung des Elements verantwortlich, wenn die neue Bezeichnung beibehalten werden soll.

List-View Farben

Eine Anwendung kann drei Farben für ein Listenansichtssteuerelement abrufen und festlegen.

Color Nachrichten, die zum Abrufen und Festlegen von Farben verwendet werden
Textfarbe LVM_GETTEXTCOLOR, LVM_SETTEXTCOLOR
Texthintergrundfarbe LVM_GETTEXTBKCOLOR, LVM_SETTEXTBKCOLOR
Hintergrundfarbe des Fensters LVM_GETBKCOLOR, LVM_SETBKCOLOR

 

Um die Darstellung eines Listenansichtssteuerelements deutlicher anzupassen, verwenden Sie NM_CUSTOMDRAW (Listenansicht) oder verwenden Sie visuelle Stile (siehe Visuelle Stile und Aktivieren visueller Stile).

Anordnen von Listenelementen nach Gruppe

Mit den Gruppierungsfeatures des Listenansicht-Steuerelements können Sie logisch verwandte Elemente visuell gruppieren. Gruppen können basierend auf Elementeigenschaften, Attributen oder anderen Merkmalen erstellt werden. Diese Gruppen werden in der Regel auf dem Bildschirm durch eine horizontale Kopfzeile getrennt, die den Namen der Gruppe enthält. Der folgende Screenshot zeigt gruppierte Elemente.

Screenshot eines Listenansichtssteuerelements mit Hunden in einer Gruppe und Katzen in einer anderen Gruppe

Sie verwenden die LVGROUP-Struktur , um Informationen zu einer Gruppe zu speichern, z. B. den Kopf- und Fußzeilentext, den aktuellen Status der Gruppe usw. Die Gruppierungs-API enthält Nachrichten, mit denen Sie Gruppen und Gruppenelemente verwalten können, indem Sie Gruppen zu Gruppen hinzufügen, Gruppen zu Ansichten hinzufügen, Gruppenelemente sortieren und Gruppen nach Elementgröße und anderen Informationen abfragen. Sie können beispielsweise Anzeigeparameter für jede Gruppe festlegen und abrufen, indem Sie die Makros ListView_SetGroupMetrics und ListView_GetGroupMetrics verwenden.

Die Gruppierung ist in allen Ansichten mit Ausnahme der Listenansicht verfügbar. Es ist nicht für Steuerelemente verfügbar, die die LVS_OWNERDATA Format haben.

Weitere Informationen finden Sie unter Verwenden von List-View-Steuerelementen.

Einfügemarken

Einfügemarken zeigen Benutzern an, wo gezogene Elemente platziert werden. Einfügemarken werden derzeit angezeigt, wenn der Benutzer ein Element in das Startmenü oder die Schnellstartleiste zieht. Die Einfügemarke funktioniert auch für Listen, die auf automatisches Anordnen festgelegt sind. Wenn ein Benutzer ein Element an eine Stelle zwischen zwei anderen Elementen zieht, gibt die Einfügemarke die erwartete neue Position des Elements an. Der folgende Screenshot zeigt eine Einfügemarke.

Screenshot: Einfügemarke beim Ziehen einer Datei zwischen zwei anderen in einem Listenansicht-Steuerelement

Die API-Elemente der Einfügemarke ermöglichen die Platzierung von Einfügemarken, indem Meldungen und Flags bereitgestellt werden, die die Treffererkennung durchführen, die die Position und darstellung der Einfügemarke nach Element angeben, und diese Abfrage von Informationen über die aktuelle Größe und Darstellung der Einfügemarke.

Siehe auch