Share via


ListView_SortItemsEx マクロ (commctrl.h)

アプリケーション定義の比較関数を使用して、リスト ビュー コントロールの項目を並べ替えます。 各項目のインデックスは、新しいシーケンスを反映するように変更されます。 このマクロを使用することも、 LVM_SORTITEMSEX メッセージを明示的に送信することもできます。

構文

void ListView_SortItemsEx(
   hwndLV,
   _pfnCompare,
   _lPrm
);

パラメーター

hwndLV

種類: HWND

リスト ビュー コントロールのハンドル。

_pfnCompare

型: PFNLVCOMPARE

アプリケーション定義の比較関数へのポインター。 2 つのリスト アイテムの相対順序を比較する必要があるたびに、並べ替え操作中に呼び出されます。

_lPrm

種類: LPARAM

比較関数に渡されるアプリケーション定義値。

戻り値

なし

解説

比較関数の形式は次のとおりです。

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

ここで、lParam1 は最初の項目のインデックスで、lParam2 は 2 番目の項目のインデックスです。 ListView_SortItemsExlParamSort パラメーターは、3 番目のパラメーターとしてコールバック関数に渡されます。

比較関数は、最初の項目が 2 番目の項目の前にある場合は負の値を返し、最初の項目が 2 番目の項目の後に続く場合は正の値を返し、2 つの項目が等しい場合は 0 を返す必要があります。

LVM_GETITEMTEXT メッセージを送信して、必要に応じてアイテムに関する詳細情報を取得できます。

このマクロは、比較関数に渡される情報の種類を除き、 ListView_SortItemsに似ています。 ListView_SortItemsExでは、アイテムのインデックスは、その lparam 値の代わりに渡されます。

メモ 並べ替え処理中に、リスト ビューの内容が不安定になります。 コールバック関数が、 LVM_GETITEM (ListView_GetItem) 以外のメッセージをリスト ビュー コントロールに送信する場合、結果は予測できません。
 

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー commctrl.h