¿Como mover un objeto?

Mikel
06 de Marzo del 2004
Quiero hacer lo siguiente con VB.NET

Tengo un PictureBox dentro de un Panel. Normalmente la imagen del PictureBox será mayor que le Panel, así que lo que quiero hacer es poder mover el PictureBox por dentro del Panel.

Es decir, quiero que el usuario pueda "agarrar" la imagen y moverla según va moviendo el raton.

¿Como puedo hacerlo?

Gracias por adelantado.

Mikel


pau_f
06 de Marzo del 2004
Prueba si esto te sirve

Declara en un módulo:
Type POINTAPI
X As Long
Y As Long
End Type
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Global inicio As POINTAPI
Global fin As POINTAPI

En el evento Mouse_Down del picture:
GetCursorPos inicio
En el evento Mouse_Up del picture:
GetCursorPos fin
Picture1.Left = Picture1.Left + (fin.X - inicio.X)
Picture1.Top = Picture1.Top + (fin.Y - inicio.Y)

Espero que te ayude.Un saludo

pau_f
06 de Marzo del 2004
Otra vez aqui.
Intentamos mejorarlo.
Elimina el evento Mouse_up del código anterior.
En el evento Mouse_Move del picture pon:
If Button <> 0 Then
GetCursorPos fin
Picture1.Left = Picture1.Left + (fin.X - inicio.X)
Picture1.Top = Picture1.Top + (fin.Y - inicio.Y)
GetCursorPos inicio
End If

Dime algo.
Un saludo

Eduardo
06 de Marzo del 2004
Utiliza este codigo para lo que quieres hacer que va muy bien.

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
ReleaseCapture
SendMessage Picture1.hwnd, &HA1, 2, 0
End If
End Sub