CListCtrl::SortItems
Trie les éléments d'affichage de liste à l'aide d'une fonction de comparaison définie par l'application.
BOOL SortItems(
PFNLVCOMPARE pfnCompare,
DWORD_PTR dwData
);
Paramètres
[in] pfnCompare
Adresse de la fonction de comparaison définie par l'application.L'opération de tri appelle la fonction de comparaison chaque fois que la commande relative de deux éléments de liste doit être déterminée.La fonction de comparaison doit être un membre statique d'une classe ou une fonction autonome qui n'est pas un membre d'une classe.
[in] dwData
Valeur définie par l'application qui est passée à la fonction de comparaison.
Valeur de retour
true si la méthode a réussi ; sinon false.
Notes
Cette méthode remplace l'index de chaque élément pour refléter la nouvelle séquence.
La fonction de comparaison, pfnCompare, a la forme suivante :
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
La fonction de comparaison doit retourner une valeur négative si le premier élément précède le deuxième, une valeur positive si le premier élément suit le deuxième, ou mettent à zéro si les deux éléments sont égaux.
Le paramètre d' lParam1 est la valeur 32 bits associée au premier élément qui est comparé, et le paramètre d' lParam2 est la valeur associée au deuxième élément.Ce sont les valeurs spécifiées dans le membre d' lParam de la structure de LVITEM des éléments lorsqu'ils ont été insérés dans la liste.Le paramètre d' lParamSort est la même que la valeur d' dwData .
Cette méthode envoie le message de LVM_SORTITEMS , qui est décrit dans Kit de développement logiciel Windows.
Exemple
Voici une fonction de comparaison simple que les résultats dans les éléments triés par leurs valeurs d' lParam .
// Sort items by associated lParam
int CALLBACK CListCtrlDlg::MyCompareProc(LPARAM lParam1, LPARAM lParam2,
LPARAM lParamSort)
{
UNREFERENCED_PARAMETER(lParamSort);
return (int)(lParam1 - lParam2);
}
// Sort the items by passing in the comparison function.
void CListCtrlDlg::Sort()
{
m_myListCtrl.SortItems(&CListCtrlDlg::MyCompareProc, 0);
}
Configuration requise
en-tête : afxcmn.h
Ce contrôle est pris en charge sous Windows NT 3,51 ou version ultérieure.