仮想リストコントロールでソートを実現したい。

実現したいこと

仮想リストコントロールでソートを実現したいです。

前提

元々、通常のリストコントロールを使用してした部分を仮想リストコントロールへ変更したいです。
リストコントロールのオーナードローをTUREにし、
カラムを押した際に、実行するOnLvnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)の中で行っていたSortItem()の処理をSortItemEx()へ変数を変更しました。しかし、SortItemEx()実行時に、「Debug Assertion Failed!」エラーが表示されてしまいます。
オーナードローがFALSEのSortItem()では、同じ実行を行った時に正常に動作しました。
「LVM_SORTITEMSEX メッセージ」の説明ページを読みましたが、SORTITEMSとの違いの部分の日本語が理解できません。

・「LVM_SORTITEMSEX メッセージ」の説明ページ
https://learn.microsoft.com/ja-jp/windows/win32/controls/lvm-sortitemsex

以下、ソースになります。SortItems関数の時と同じ処理のまま、SortItemsEx関数にしています。

SortItems関数とSortItemsEx関数の処理の違いやSortItemsEx関数の使い方について教えて頂きたいです。

該当のソースコード

VC++

1void Cxxxxx::OnLvnColumnclick(NMHDR* pNMHDR, LRESULT* pResult) 2{ 3 SortItemsEx(ListItemCompareProc,(DWORD_PTR)(this)); 4 *pResult = 1; 5}

VC++

1int CALLBACK Cxxxxx::ListItemCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) 2{ 3 ・・・・・・・・・・・・・・・・・・・・・・・ 4}

コメントを投稿

0 コメント