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

解決


琅珎  2004-11-12 20:51:58  No: 117560

はじめまして。

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 21:25:08  No: 117561

移動させるだけなら
これで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 22:05:21  No: 117562

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加