Freigeben über


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.

Siehe auch

Referenz

CListCtrl-Klasse

Hierarchiediagramm

CListCtrl::FindItem

CListCtrl::SortItemsEx