次の方法で共有


CListCtrl::SortItems

更新 : 2007 年 11 月

アプリケーション定義の比較関数を使って、リスト ビュー アイテムを並べ替えます。

BOOL SortItems(
   PFNLVCOMPARE pfnCompare,
   DWORD_PTR dwData 
);

パラメータ

  • [入力] pfnCompare
    アプリケーション定義の比較関数のアドレス。

    この比較関数は、並べ替え操作中に、2 つのリスト アイテムの相対的な順序を判別する必要が生じるたびに呼び出されます。比較関数は、クラスの静的メンバか、どのクラスのメンバでもないスタンドアロン関数である必要があります。

  • [入力] dwData
    比較関数に渡されるアプリケーション定義の値。

戻り値

このメソッドが成功した場合は true。それ以外の場合は false。

解説

このメソッドは、新しい順序に合わせて各アイテムのインデックスを変更します。

比較関数 pfnCompare は次の形式をとります。

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

比較関数は、最初のアイテムが 2 番目のアイテムよりも前の場合は負の値、最初のアイテムが 2 番目のアイテムの後の場合は正の値、2 つのアイテムが等しい場合は 0 を返します。

パラメータ lParam1 は、比較される最初のアイテムに関連付けられている 32 ビットの値です。パラメータ lParam2 は、2 番目のアイテムに関連付けられている値です。これらの値は、リストに挿入するときに、アイテムの LVITEM 構造体の lParam メンバで指定します。パラメータ lParamSort は、dwData 値と同じ値です。

このメソッドは、LVM_SORTITEMS メッセージを送信します。このメッセージについては、Windows SDK を参照してください。

使用例

次は、簡単な比較関数で、その結果、項目は lParam 値で並べ替えられます。

// Sort items by associated lParam
int CALLBACK CListCtrlDlg::MyCompareProc(LPARAM lParam1, LPARAM lParam2, 
   LPARAM lParamSort)
{
   UNREFERENCED_PARAMETER(lParamSort);

   return (int)(lParam1 - lParam2);
}

必要条件

ヘッダー : afxcmn.h

このコントロールは、Windows NT 3.51 またはそれ以降のバージョンでサポートされています。

参照

参照

CListCtrl クラス

階層図

CListCtrl::FindItem

CListCtrl::SortItemsEx

その他の技術情報

CListCtrl のメンバ