実現したいこと
仮想リストコントロールでソートを実現したいです。
前提
元々、通常のリストコントロールを使用してした部分を仮想リストコントロールへ変更したいです。
リストコントロールのオーナードローを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 コメント