- ベストアンサー
マウス座標からリストボックスのリストインデックスを知る方法
リストボックスをドラッグアンドドロップのドロップ先とするプログラムを作成しているのですが、どのリストボックス項目にドロップされたかを知る方法を教えてください。 ドロップ時にはマウス座標が渡されるのですが、この座標からリストインデックスをどのようにして求めたらよいか分からずにいます。 対象としているプログラムは、フォントサイズもリストボックスのサイズも固定ですので、以下のようなコーディングでしのげていますが、フォントサイズやリストボックスサイズが実行時に変えられても対応できるような、もっとスマートな方法はないでしょうか? リストインデックス = リストボックス.TopIndex + マウスY座標 \ リストボックスの項目の高さ(9ptフォントで180ぐらい?)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
リストボックスの項目の高さ =Screen.TwipsPerPixelY * _ SendMessage(List1.hwnd, LB_GETITEMHEIGHT, 0, vbNullString) 参考URLのdraglist?.zipにサンプルがあります
その他の回答 (1)
- ccsakiyama
- ベストアンサー率0% (0/1)
回答No.1
参考URLが答になっていると思います。 WindowsAPIを使ったりして、あまりスマートとは思いませんが…
質問者
お礼
ありがとうございます。 Knowledge Base…基本ですね。 最初から検索すべきでした。
お礼
ありがとうございます。 ご紹介いただいたURLは英語なのが多少つらいですが、色々参考になりそうです。 紹介いただいたURLはzipファイルの一覧でしたので、以下のURLを"お気に入り"に追加しました。 http://www.vb-helper.com/howto.htm