※ ChatGPTを利用し、要約された質問です(原文:LV_ITEM構造体のメンバlParamについて)
LV_ITEM構造体のメンバlParamについて
このQ&Aのポイント
リストビューのカラムをクリックすると、落ちてしまいます。カラムをクリックするとソートするようにしたいです。
LV_ITEM構造体のポインタを取得した時に、メンバlParamの値が空のまま(0)になっているため、落ちてしまいます。
どのようにしたら、値を取得できるのでしょうか?環境は、Win98、MFCで作成しています。
リストビューのカラムをクリックすると、落ちてしまいます。
やりたい事は、カラムをクリックするとソートするようにしたいです。
下記の(8)でLV_ITEM構造体のポインタを取得した時に
メンバlParamの値は空のまま(0)の為?
落ちてしまうのです。
どのようにしたら、値を取得できるのでしょうか??
一部ですが、問題のあるところだけ下記に明記します。
#説明上、番号を振りました。
#下記の処理は、CListCtrlクラスを継承したCxxxxクラスの関数です。
************(ここから)******************
(1)LV_ITEM lvItem;
(2)int iTemNo;
(3)for(int i = 0; i < this->GetItemCount(); i++)
(4){
(5) lvItem.iItem = i;
(6) lvItem.iSubItem = 0;
(7) lvItem.mask = LVIF_PARAM;
(8) this->GetItem(&lvItem);
(9) LPITEMPARAM lpItemParam = (LPITEMPARAM)lvItem.lParam;
(10) iTemNo = i;
(11) this->SetItem(&lvItem);
(12)}
************(ここまで)******************
環境は、Win98、MFCで作成しています。
(8)ではGetItemの戻り値で確認したら、
正常に構造体を取得できているかと思うのですが、
lParamの値は、空なんです・・・・。
また、他に必要な情報は、ございますでしょうか?
よろしくお願いします。
お礼
回答ありがとうございました。 違う方法で実現させました。 今回、問題のあった箇所(8)をコメントアウトしました。 必要ない処理?のようでした。 ただ、とりあえず動作させた程度なので、 バグはないにしろ、自分的にはリストビューのアイテムを 構造体のポインタに保存させたあと、 比較関数で取り出して使いたかったのですが、、、。 教えて頂いた所は、知ってる限りでは、 かなり丁寧で見やすい所だったと思います。 ありがとうございました。