> はじめまして、 おぉ、はじめまして。 久方ぶりの一般人、今後ともよろしく!
長らくお待たせしました、 あんまり使ったことの無いコントロールだったんで、 調査が長引いてしまいました。 #amiさんに先を越されまいと、がんばってしまいました。
ではでは、ほかに簡単な方法があるかもしれませんが、 とりあえず、動きますのでこれを試してください。 #そのうち、VBのページに加えておきます。
'**************************** Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any _ ) As Long
Private Const TV_FIRST = 4352 Private Const TVM_GETNEXTITEM = (TV_FIRST + 10) Private Const TVGN_CARET = 9 Private Const TVM_GETITEMRECT = (TV_FIRST + 4)
Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
'****************************
Dim hItem As Long Dim r As RECT Dim lpData(4) As Long
hItem = SendMessage(trvTree.hwnd, TVM_GETNEXTITEM, TVGN_CARET, ByVal 0) lpData(0) = hItem Call SendMessage(trvTree.hwnd, TVM_GETITEMRECT, True, lpData(0)) r.Left = trvTree.Left + lpData(0) * Screen.TwipsPerPixelX r.Top = trvTree.Top + lpData(1) * Screen.TwipsPerPixelY r.Right = trvTree.Left + lpData(2) * Screen.TwipsPerPixelX r.Bottom = trvTree.Top + lpData(3) * Screen.TwipsPerPixelY
'**************************** これで、rに領域が格納されます。Form上の twips 座標で
では、
|