[過去ログ] Excel VBA 質問スレ Part68 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
146
(2): (ブーイモ MM8e-+eY2) 2020/09/09(水)10:37 ID:KbsHkxtjM(1/2) AAS
すみません。ちょっと長くなってしまうのですがTreeViewをいじっているうちに分からない事があったので教えて下さい。
TreeViewの子ノードをD&Dでリストボックスにコピーする動作を作っていたのですが、ドラッグ開始時点のSelectedItemを取得しようとすると1度子ノードをクリックした上でD&Dを行う必要がありました。
その為、既定引数の?POS,yPOSを使ってHitTestをSelectedItemに代入しようとしました。
しかしそれが上手く動作せず色々調べた結果、
xとyに*15をすると言う記述を見つけ試してみたところ、思い通りの動作を得られました。

しかしながらこの15はなんの15なんだ。他の環境ではこの数値は変わるのか。変わるならば何を元に算出すれば良いのだろうか。
という疑問が浮かびました。
お手数をお掛け致しますがお分かりになる方がいらっしゃいましたらご教授頂けませんでしょうか。
221
(1): (スップ Sd0a-4Ha4) 2020/09/11(金)08:33 ID:L6SxevYWd(1/2) AAS
>>146
そいつはバグだと思うよ。
Mougで質問してた人がいて、俺も試したけどTreeViewでのD&Dで座標がバグってる。

で、15ってのはそのバグを何とか実情に合わせたものだと思う。
俺もその時似たようなことやって15っていう数字には覚えがある。
222
(1): (ブーイモ MM81-+eY2) 2020/09/11(金)09:37 ID:mn04Qg6+M(1) AAS
>>221
>>146 です。色々調べた結果、TreeViewのMouseMoveやMouseDownのイベントで渡される座標が他のフォームとは異なりピクセルで渡される事が原因でした。
なのでGetDesktopWindow,GetDC,GetDeviceCapを用いてDPIを取得し、
取得した値で1440(1440twips=1Inch)を割り、
その値をピクセル数に掛ける事でポイントでの換算に成功しました。
標準の設定ですとDPIが96になるそうなので1440/96で15、となるようです。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s