Freigeben über


ListView_SortItems Makro (commctrl.h)

Verwendet eine anwendungsdefinierte Vergleichsfunktion, um die Elemente eines Listenansichtssteuerelements zu sortieren. Der Index der einzelnen Elemente ändert sich, um die neue Sequenz widerzuspiegeln. Sie können dieses Makro verwenden oder die LVM_SORTITEMS Nachricht explizit senden.

Syntax

BOOL ListView_SortItems(
   HWND         hwndLV,
   PFNLVCOMPARE _pfnCompare,
   LPARAM       _lPrm
);

Parameter

hwndLV

Typ: HWND-

Ein Handle für das Listenansicht-Steuerelement.

_pfnCompare

Typ: PFNLVCOMPARE

Ein Zeiger auf die anwendungsdefinierte Vergleichsfunktion. Die Vergleichsfunktion wird während des Sortiervorgangs jedes Mal aufgerufen, wenn die relative Reihenfolge von zwei Listenelementen verglichen werden muss.

_lPrm

Typ: LPARAM-

Der anwendungsdefinierte Wert, der an die Vergleichsfunktion übergeben wird.

Rückgabewert

Typ: BOOL-

Gibt TRUE zurück, wenn dies erfolgreich ist, oder FALSE andernfalls.

Bemerkungen

Die Vergleichsfunktion weist das folgende Formular auf.

int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM _lPrm);

Der parameter lParam1 ist der Wert, der dem ersten verglichenen Element zugeordnet ist; und der lParam2 Parameter ist der dem zweiten Element zugeordnete Wert. Dies sind die Werte, die im lParam- Element der LVITEM- Struktur angegeben wurden, als sie in die Liste eingefügt wurden. Der parameter _lPrm ist derselbe Wert, der an die LVM_SORTITEMS Nachricht übergeben wird.

Die Vergleichsfunktion muss einen negativen Wert zurückgeben, wenn dem zweiten Element ein positiver Wert vorangestellt werden soll, wenn das erste Element auf die zweite oder null folgen soll, wenn die beiden Elemente gleichwertig sind.

Hinweis Während des Sortiervorgangs sind die Listenansichtsinhalte instabil. Wenn die Rückruffunktion Nachrichten an das Listenansicht-Steuerelement sendet, sind die Ergebnisse unvorhersehbar.
 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- commctrl.h