Aracılığıyla paylaş


CListCtrl::SortItemsEx

Uygulama tanımlı karşılaştırma işlevini kullanarak geçerli liste görünüm denetimi öğeleri sıralar.

BOOL SortItemsEx(
     PFNLVCOMPARE pfnCompare, 
     DWORD_PTR dwData
);

Parametreler

Parametre

Description

[in]pfnCompare

Uygulama tanımlı karşılaştırma işlev adresi.

Sıralama işlemi, her zaman göreli iki liste öğelerinin sırasını belirlenmesi gereken karşılaştırma işlevini çağırır.Karşılaştırma işlevi, herhangi bir sınıfın üyesi olmayan tek başına bir işlev ya da statik bir sınıf üyesi olması gerekir.

[in]dwData

Uygulama tanımlı değer karşılaştırma işlevine geçirildi.

Dönüş Değeri

trueBu yöntem başarılı olursa; Aksi takdirde, false.

Notlar

Bu yöntem yeni sırayı yansıtacak şekilde her öğenin dizini değiştirir.

Karşılaştırma işlevi pfnCompare, aşağıdaki biçime sahiptir:

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

Bu ileti bir duygu olduğunu LVM_SORTITEMS, bilgi türü dışında geçirilen karşılaştırma işlevi.De LVM_SORTITEMS, lParam1 ve lParam2 karşılaştırmak için öğeleri değerlerdir.De LVM_SORTITEMSEX, lParam1 karşılaştırmak için ilk öğenin geçerli dizin ve lParam2 ikinci öğenin geçerli dizindir.Göndermek için bir LVM_GETITEMTEXT bir öğe hakkında daha fazla bilgi almak için ileti.

İlk öğeyi ikinci gelmelidir, karşılaştırma işlevi negatif bir değer döndürmesi gerekir, ilk öğeyi ikinci ya da sıfır izlesin, pozitif bir değer iki eşit maddelerdir.

[!NOT]

Sıralama işlemi sırasında liste görünümü içeriğini kararsız.Geri çağırma işlevi herhangi bir ileti için liste görünümü denetimi dışında gönderirse LVM_GETITEM, sonuçlar tahmin edilemez.

Bu yöntem gönderir LVM_SORTITEMSEX 'de açıklanan iletiyi Windows SDK.

Gereksinimler

Başlık: afxcmn.h

Bu, desteklenen Windows 2000, Internet Explorer 5 ile Windows NT 4.0, Windows 98 ve sonraki yöntemidir.

Örnek

Aşağıdaki kod örneği, bir değişken tanımlar m_listCtrl, yani geçerli liste görünümü denetime erişmek için kullanılır.Bu değişken, bir sonraki örnekte kullanılır.

public:
    // Variable used to access the list control.
    CListCtrl m_listCtrl; 

Aşağıdaki kod örneği gösterilmiştir SortItemEx yöntemi.Bu kod örneği, bir önceki bölümde rapor görünümünde "İstemciKimliği" ve "Sınıf" başlıklı iki sütun görüntüleyen bir liste görünümü denetimi oluşturdu.Aşağıdaki kod örneği, tablonun "Sınıf" sütunundaki değerleri kullanarak sıralar.

// The ListCompareFunc() method is a global function used by SortItemEx().
int CALLBACK ListCompareFunc(
                             LPARAM lParam1, 
                             LPARAM lParam2, 
                             LPARAM lParamSort)
{
    CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
    CString    strItem1 = pListCtrl->GetItemText(static_cast<int>(lParam1), 1);
    CString    strItem2 = pListCtrl->GetItemText(static_cast<int>(lParam2), 1);

    int x1 = _tstoi(strItem1.GetBuffer());
    int x2 = _tstoi(strItem2.GetBuffer());
    int result = 0;
    if ((x1 - x2) < 0)
        result = -1;
    else if ((x1 - x2) == 0)
        result = 0;
    else
        result = 1;

    return result;
}

void CCListCtrl_s2Dlg::OnBnClickedButton1()
{
    // SortItemsEx
    m_listCtrl.SortItemsEx( ListCompareFunc, (LPARAM)&m_listCtrl );
}

Ayrıca bkz.

Başvuru

CListCtrl sınıfı

Hiyerarşi grafik

LVM_SORTITEMSEX

CListCtrl::SortItems

LVM_SORTITEMS

LVM_GETITEM