CListCtrl::SortItems
Sortiert Listenansichtelemente, indem eine anwendungsdefinierte Vergleichsfunktion verwenden.
BOOL SortItems(
PFNLVCOMPARE pfnCompare,
DWORD_PTR dwData
);
Parameter
[in] pfnCompare
Adresse der anwendungsdefinierten Vergleichsfunktion.Der Sortiervorgang ruft die Vergleichsfunktion auf jedes Mal, wenn die relative Reihenfolge von zwei Listenelementen bestimmt werden muss. Die Vergleichsfunktion muss entweder ein statischer Member einer Klasse oder eine eigenständige Funktion sein, die nicht Mitglied einer Klasse ist.
[in] dwData
Anwendungsdefinierter Wert, der der Vergleichsfunktion übergeben wird.
Rückgabewert
true wenn die Methode erfolgreich; andernfalls false.
Hinweise
Diese Methode ändert den Index jedes Elements, um die neue Sequenz wiederzugeben.
Die Vergleichsfunktion, pfnCompare, hat das folgende Format:
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
Die Vergleichsfunktion muss einen negativen Wert zurückgeben, wenn der erste Punkt das zweite vorausgeht, ein positiver Wert, wenn der erste Punkt das zweite folgt, oder auf null einstellen, wenn die beiden Elemente gleich sind.
Der lParam1-Parameter ist der 32-Bit-Wert, der mit dem ersten Punkt zugeordnet wird, der verglichen wird, und der lParam2-Parameter ist der Wert, der mit dem zweiten Element zugeordnet ist. Diese sind die Werte, die im lParam-Member der LVITEM-Struktur der Elemente angegeben wurden, als sie in die Liste eingefügt wurden. Der lParamSort-Parameter entspricht dem dwData-Wert.
Diese Methode sendet die LVM_SORTITEMS Meldung, die im Windows SDK beschrieben wird.
Beispiel
Nachfolgend wird eine einfache Vergleichsfunktion, die die Elemente ergibt, die anhand der lParam-Werte sortiert werden.
// 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);
}
Anforderungen
Header: afxcmn.h
Dieses Steuerelement wird unter Windows NT 3.51 oder höher unterstützt.