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

タイトル Re^3: ラインのドラッグ移動
投稿日: 2010/10/08(Fri) 09:25
投稿者花ちゃん
Form に Label を2個貼り付けて、下記コードをコピー & ペースト して見て下さい。

摘まみを作成していないので摘まみにくいので、Label の幅を広くしております。
右側のライン(擬似的に)をドラッグして移動できるようにしております。
最終的にどのようにしたいのは知りませんが、当初の質問の範囲なら下記のように
しても目的を達成できるかと思います。
(高度な事は何もしていないので後は、同様にひたすら力技の出番かと)

Option Explicit

Private XPos    As Long
Private YPos    As Long
Private fomLeft As Long
Private fomTop  As Long

Private Sub Label2_DragDrop(Source As Control, X As Single, Y As Single)
    '同一コントロール内でドロップした場合の補正
   Source.Move (Label2.Left + X - XPos), (Label2.Top + Y - YPos)
End Sub

Private Sub Label2_MouseDown(Button As Integer, Shift As _
                              Integer, X As Single, Y As Single)
'ドラッグ開始位置の保存とドラッグの開始
   YPos = Y
   XPos = X
   Label2.Drag vbBeginDrag
End Sub

Private Sub Form_DragDrop(Source As Control, _
                                    X As Single, Y As Single)
'フォーム上にドロップした時の補正
   Source.Move X - XPos, Y - YPos
End Sub

Private Sub Form_Load()
   With Label1
      .Appearance = 0
      .BorderStyle = 1
      .Top = 800
      .Left = 1000
      .Height = 3000
      .Width = 15
   End With
   With Label2
      .Appearance = 0
      .BorderStyle = 1
      .Top = 800
      .Left = 5000
      .Height = 3000
      .BackColor = vbBlack
      .Width = 90    '摘まみにくいので太く描画
   End With
   Label2.OLEDropMode = vbOLEDropManual ' 1
End Sub

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

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