Bagikan melalui


ListView_SortItemsEx makro (commctrl.h)

Menggunakan fungsi perbandingan yang ditentukan aplikasi untuk mengurutkan item kontrol tampilan daftar. Indeks setiap item berubah untuk mencerminkan urutan baru. Anda dapat menggunakan makro ini atau mengirim pesan LVM_SORTITEMSEX secara eksplisit.

Sintaksis

BOOL ListView_SortItemsEx(
   HWND         hwndLV,
   PFNLVCOMPARE _pfnCompare,
   LPARAM       _lPrm
);

Parameter

hwndLV

Jenis: HWND

Handel ke kontrol tampilan daftar.

_pfnCompare

Jenis: PFNLVCOMPARE

Penunjuk ke fungsi perbandingan yang ditentukan aplikasi. Ini dipanggil selama operasi pengurutan setiap kali urutan relatif dari dua item daftar perlu dibandingkan.

_lPrm

Jenis: LPARAM

Nilai yang ditentukan aplikasi yang diteruskan ke fungsi perbandingan.

Mengembalikan nilai

Jenis: BOOL

Mengembalikan TRUE jika berhasil, atau FALSE sebaliknya.

Komentar

Fungsi perbandingan memiliki formulir berikut.

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

di mana lParam1 adalah indeks item pertama dan lParam2 indeks kedua. Parameter _lPrmListView_SortItemsExditeruskan ke fungsi panggilan balik sebagai parameter ketiganya.

Fungsi perbandingan harus mengembalikan nilai negatif jika item pertama harus mendahului yang kedua, nilai positif jika item pertama harus mengikuti item kedua, atau nol jika dua item tersebut setara.

Anda dapat mengirim pesan LVM_GETITEMTEXT untuk mengambil informasi lebih lanjut tentang item, jika diperlukan.

Makro ini mirip dengan ListView_SortItems, kecuali untuk jenis informasi yang diteruskan ke fungsi perbandingan. Dengan ListView_SortItemsEx, indeks item diteruskan alih-alih nilai lparam .

Catatan Selama proses pengurutan, konten tampilan daftar tidak stabil. Jika fungsi panggilan balik mengirim pesan apa pun ke kontrol tampilan daftar selain dari LVM_GETITEM (ListView_GetItem), hasilnya tidak dapat diprediksi.
 

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Platform Target Windows
Header commctrl.h