通知
すべてクリア
2006年10月21日 3:28 PM
■環境
WindowsXP
VisualC++2005
Win32,PlatformSDK
■症状
アイコンモードのリストビュー(LVS_ICONを指定したリストビュー)にて、
LVS_OWNERDATAを指定して仮想リストビュー化したら、左クリックで項目を選択するための範囲が広
くなった。
■やりたいこと
広がった範囲を元に戻したい。
■依頼内容
LVS_OWNERDATAを指定したもの(仮想リストビュー)と、指定していないもの(通常)で、クリック
で選択するための当たり判定の範囲が違うようですが、どうすればLVS_OWNERDATAを指定した場合で
も、通常の当たり判定範囲に変更できるのでしょうか?
当たり判定範囲の違いについて二つほど説明すると、
・ListView_GetItemPosition で、取得できる位置が違う。
通常の場合は、アイコンの左上の位置が取得される
仮想リストビューの場合は、項目の左上の位置が取得される(アイコンの左上よりさらに左)
・クリックした時に選択できる範囲が違う。
通常の場合は、アイコンもしくはテキストをクリックすると、項目が選択できる。
仮想リストビューの場合は、もっと広い範囲で項目が選択できる。(アイコンの横のスペースも)
といった感じです。
仮想リストビューでも、クリック範囲を通常の場合と同様の範囲に変更できれば、と思っています。
方法を知っている方がおられたらご教授いただけないでしょうか?
よろしくおねがいします。