VB6 ドラッグ&ドロップ
Image1をPicture1(正方形)にドラッグ&ドロップするプログラム
を作りたいと思っています。
このプログラムだとImage1全体がドラッグされるのではなく、
Image1の絵はその位置に残ってImage1の外枠だけがドラッグされてしまいます。
外枠だけでなくImage1の絵も一緒にドラッグできるようにするにはどうすればいいのでしょうか?
また、このプログラムだとドロップする場所(Picture1_)以外で
ドロップしてしまった場合でも画面上からImage1の絵と外枠が消えてしまいます。
ドロップする場所(Picture1_)以外でドロップしてしまった場合は、
Image1全体を画面上に残しておきたいのですがどうすればいいのでしょうか?
Option Explicit
Dim dx As Single, dy As Single
Private Sub Form_Load()
Image1.Picture = LoadPicture(App.Path & "picture.jpg")
Image1.Stretch = True
End Sub
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X - dx, Y - dy
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Image1.Drag 1
dx = X: dy = Y 'マウスダウン位置
End Sub
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Source.Visible = False 'ドロップオブジェクトを非表示にする
Picture1.BackColor = RGB(255, 255, 255)
End Sub
Private Sub Picture1_DragOver(Source As Control, X As Single, Y As Single, _
State As Integer)
If State = 0 Then Picture1.BackColor = RGB(0, 0, 255)
If State = 1 Then Picture1.BackColor = RGB(255, 255, 255)
End Sub
補足
Mouseイベントにはたどり着いたのですが MouseDownのときにクリックしたカーソルの位置の座標は どうすれば、取得できるのでしょうか…。 Cursorを使えばいいということもわかりました しかし、これだけでは不十分な気がします…。