¿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