リストビューの行選択時のイベント

[戻る]
Ponta 2005/08/29(月) 14:26:59
連続の質問で失礼します。

リストビューで行選択時のイベントを取りたく、
OnItemchangedイベントを設定したのですが、
行選択を行うと「3」回呼ばれてるようです。
(ブレーク張ったら3回呼ばれてました。)

イベント内にある、NM_LISTVIEW* pNMListViewの
中身が変化していましたが、MSDNにはこの構造体の
中身の説明が見当たりません。(探し方が悪い?)

3回呼ばれるのが正常なのかもわかりませんが、
行選択時のイベントそのものと選択行の中身を
取得したいです。

宜しくお願いします。
VC6.0/MFCです。

dairygoods 2005/08/29(月) 15:30:37
NMLISTVIEW が該当します。

#ウィザードの自動生成コードは、
#大昔に作られたものをそのまま使っているため、
#旧式の名前や流儀がいくつか残っています。


ItemChangeイベントは、選択の変化ではなく、
状態の変化を通知するものですので、
選択が切り替わったことに伴う状態変化の数だけ呼ばれます。

細かいことは構造体のメンバを調べてみれば分かると思います。

PATIO 2005/08/29(月) 15:44:32
MSDNを見る限りでは、NM_LISTVIEW*は、NMLISTVIEW構造体へのポインタで、
内部の項目に関しては、LVITEM構造体なんかを参照すればわかるのではないでしょうか。
アイテムの状態が変わるたびに通知されるようなので
LVIS_FOCUSEDとかLVIS_SELECTEDと言った状態の変化が逐一通知されているのはないですか?

英語で表記されている箇所もありますが、一つ一つ読み下していけば情報が得られるはず
なので
そこは地道に努力するしかないと思います。
英語のドキュメントしかなければ、辞書を片手にでも読んでいかないと仕方がないです。
何も本職の訳者の様な和訳が必要なわけでもありませんし、文章の意味が取れれば十分だと
思いますよ。

Ponta 2005/08/29(月) 17:52:39
[[解決]]
ありがとうございます。
英語版のヘルプは見つけることが出来ましたので、
辞書片手にやってみようと思います。
ありがとうございました。

古いスレッドには追加発言できません。