Partager via


macro ListView_SortItemsEx (commctrl.h)

Utilise une fonction de comparaison définie par l’application pour trier les éléments d’un contrôle list-view. L’index de chaque élément change pour refléter la nouvelle séquence. Vous pouvez utiliser cette macro ou envoyer explicitement le message LVM_SORTITEMSEX.

Syntaxe

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

Paramètres

hwndLV

Type : HWND

Handle du contrôle list-view.

_pfnCompare

Type : PFNLVCOMPARE

Pointeur vers une fonction de comparaison définie par l’application. Il est appelé pendant l’opération de tri chaque fois que l’ordre relatif de deux éléments de liste doit être comparé.

_lPrm

Type : LPARAM

Valeur définie par l’application transmise à la fonction de comparaison.

Valeur de retour

Type : BOOL

Retourne TRUE en cas de réussite ou FALSE sinon.

Remarques

La fonction de comparaison a la forme suivante.

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

lParam1 est l’index du premier élément et lParam2 l’index de la seconde. Le paramètre _lPrmListView_SortItemsExest passé à la fonction de rappel en tant que troisième paramètre.

La fonction de comparaison doit retourner une valeur négative si le premier élément doit précéder le deuxième, une valeur positive si le premier élément doit suivre le deuxième ou zéro si les deux éléments sont équivalents.

Vous pouvez envoyer un message LVM_GETITEMTEXT pour récupérer des informations supplémentaires sur un élément, si nécessaire.

Cette macro est similaire à ListView_SortItems, à l’exception du type d’informations transmises à la fonction de comparaison. Avec ListView_SortItemsEx, l’index de l’élément est passé au lieu de sa valeur lparam.

Remarque Pendant le processus de tri, le contenu de l’affichage liste est instable. Si la fonction de rappel envoie des messages au contrôle list-view en dehors de LVM_GETITEM (ListView_GetItem), les résultats sont imprévisibles.
 

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête commctrl.h