tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル TreeView MouseMoveで、当該ノードでの x ,y 位置
投稿日: 2010/09/08(Wed) 12:41
投稿者ima
お世話になります。  ( WinXP VB6 sp6 )

ツリービューのノード間に線を引くには
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200506/05060109.txt

に有るようなことをコーディングしました。

下記手法では、HitTest メソッドでノードを特定するため、MouseMoveで
対象ノード内のどの部分(上とか下とか)を動かしても、そのノードの下に線を引く事になります。

Private Sub TreeView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) にて、

    TreeView1.HitTest(x, y).Selected = True
    hItem = SendMessage(TreeView1.hwnd, TVM_GETNEXTITEM, TVGN_CARET, ByVal 0)
    lpData(0) = hItem
    Call SendMessage(TreeView1.hwnd, TVM_GETITEMRECT, True, lpData(0))
    r.Left = TreeView1.Left + lpData(0)
    r.Top = TreeView1.Top + lpData(1)
    r.Right = TreeView1.Left + lpData(2)
    r.Bottom = TreeView1.Top + lpData(3)
    With picSplitter
        .Top = r.Bottom + 1
        .Left = r.Left
        .Width = r.Right - r.Left
        .Visible = True
    End With

それを出来れば、
対象ノード内の上半分の領域では、対象ノード内の上に線を描画し、
対象ノード内の下半分の領域では、対象ノード内の下に線を描画する。

と言ったことを出来ればと考えています。

⇒ 最終的な目的は、FirstSiblingノードの上にも線を引き、対象ノードを先頭ノード
の上に Drag & Drop で移動を行いたいのです。

つまり、MouseMoveイベントでの x ,y 位置をTreeView基準でなく、ノード基準で
判断できないか? 或いは、当該ノードの上半分にいるのか下半分にいるのかを
判断したいのです。

宜しくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。