ListView_SortItemsEx macro (commctrl.h)

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

Syntaxe

void ListView_SortItemsEx(
   hwndLV,
   _pfnCompare,
   _lPrm
);

Paramètres

hwndLV

Type : HWND

Handle pour le contrôle d’affichage de liste.

_pfnCompare

Type : PFNLVCOMPARE

Pointeur vers une fonction de comparaison définie par l’application. Elle est appelée 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 qui est passée à la fonction de comparaison.

Valeur de retour

None

Remarques

La fonction de comparaison se présente sous la forme suivante.

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

lParam1 est l’index du premier élément et lParam2 l’index du second. Le paramètre lParamSort du ListView_SortItemsEx est 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 second, 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 .

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête commctrl.h