Gedrückter linken Maustaste auf Bild = verschieben

Hallo alle zusammen,

wie kann ich es schaffen, dass wenn ich ein Bild (in VB6) mit der linken Maustaste gedrückt halste, es verschiebbar ist?

Danke für gute Antworten schon mal im Vorrauss^^

Gruß
christopher

Hallo Christopher,

auch hier gibt es wieder 2 Möglichkeiten ein Bild darzustellen!
Aber anbei kurz die Vorgehensweise.
Im Mousedown Event setzt du ein globales Flag das die Rechte Maustaste gedrueckt ist. Im MouseUP Event setzt du die Variable wieder zurueck.
Im MouseMouve Event kannst du die „BildBox“ anhand der Koordinaten die du geliefert bekommst und mittels der Methode Move des Steuerelementes verschieben.

MfG Alex

hmm, das klingt schon logisch, aber leider geht es nicht bei mir!
kansnt du mir nicht bitte ienfach ein Beispiel schreiben?
währ nett!

Gruß
christopher2007

Hallo Christopher,

ungetestet, sollte es aber tun. Ist wie gesagt nur zu Demozwecken und dient als Funktionsweise.

Option Explicit

Dim Press As Boolean
Dim x1 As Long
Dim y1 As Long

Private Sub Picture1\_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
 If Button = 2 Then
 Press = True
 End If
End Sub

Private Sub Picture1\_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
 If Press Then
 With Picture1
 If x1 = 0 Then x1 = x
 If y1 = 0 Then y1 = y
 .Move (x - x1) + .Left, (y - y1) + .Top
 End With
 End If
End Sub

Private Sub Picture1\_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
 Press = False
End Sub

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Christopher

Zum Verschieben eines Steuerelementes kannst Du doch das DragDrop-Ereignis verwenden.

Viele Grüße Carsten

Hallo Christopher,

und das soll wie funktionieren?

MfG Alex

Hallo Anno74

Hallo Christopher,

Das bin ich nicht

So funktioniert das:

'Formular Form1
'PictureBox Picture1

Private DragX As Single
Private DragY As Single

Private Sub Form\_DragDrop(Source As Control, X As Single, Y As Single)
 Select Case Source.Name
 Case "Picture1"
 Source.Move X - DragX, Y - DragY
 End Select
End Sub

Private Sub Picture1\_DragDrop(Source As Control, X As Single, Y As Single)
 Select Case Source.Name
 Case "Picture1"
 Source.Move X - DragX + Picture1.Left, Y - DragY + Picture1.Top
 End Select
End Sub

Private Sub Picture1\_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Picture1.Drag 1
 DragX = X
 DragY = Y
End Sub

Private Sub Picture1\_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Picture1.Drag 2
End Sub

Viele Grüße
Carsten