ドラッグ処理を加えたピクチャーボックスについて

解決


琅珎  2004-11-12 11:51:58  No: 117560  IP: [192.*.*.*]

はじめまして。

Line処理で描画した後に、ピクチャーボックスを移動させるための処理を行っているのですが、
ドラッグせずにクリックすると、描画したものが消えてしまいます。
クリックしても消えないようにしたいのですが
どうしたらいいのかわかりません。

Picture1のAutoRedrawはTrueをデフォルトで設定していて、
ソースは以下の様にしています。

Private XPos As Single
Private YPos As Single

Private Sub Picture1_MouseDown(〜省略〜)
   
   '座標の取得
   XPos = X
   YPos = Y
   If TypeOf Picture1 Is PictureBox Then Obj.DrawMode = 1
   'ドラッグの開始
   If Button = vbLeftButton Then Obj.Drag vbBeginDrag

End Sub

Private Sub Picture1_MouseUp(〜省略〜)
   
   If Button = vbLeftButton Then Picture1.Drag vbEndDrag
   
End Sub

Private Sub Picture1_DragDrop(〜省略〜)
   
   Source.Move (Picture1.Left + X - XPos), (Picture1.Top + Y - YPos)
   If TypeOf Source Is PictureBox Then
      Picture1.Picture = Surce.Picture
   End If

End Sub

環境はWin2000のVB6.0です。
どなたか教えてください。
お願いします。

編集 削除
ミッション  2004-11-12 12:25:08  No: 117561  IP: [192.*.*.*]

移動させるだけなら
これでOKでは?
Private XPos As Single
Private YPos As Single
Private MoveFlag As Boolean

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MoveFlag = True
XPos = X
YPos = Y
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If MoveFlag = True Then
    Picture1.Top = Picture1.Top + Y - YPos
    Picture1.Left = Picture1.Left + X - XPos
End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MoveFlag = False
End Sub

それともドロップで画像を移動させるの?

編集 削除
琅珎  2004-11-12 13:05:21  No: 117562  IP: [192.*.*.*]

ミッションさんありがとうございます^^
ピクチャーボックスそのものを移動させたかったので、
ミッションさんのソースで試したところできました。
ありがとうございました。

編集 削除