Autor Tema: Mover con el mouse ucImage  (Leído 2458 veces)

0 Usuarios y 1 Visitante están viendo este tema.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Mover con el mouse ucImage
« en: Septiembre 23, 2011, 12:51:24 pm »
Como puedo mover el ucImage con el mouse. Encontré este método que resulta muy bien como quiero, digo como quiero por que puedo mover otro picture sobre otro. Pero el ucImage no tiene hwnd y no puedo mover con este metodo.

Código: [Seleccionar]
Const WM_SYSCOMMAND As Long = &H112&
Const MOUSE_MOVE As Long = &HF012&

Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long

Private Sub MoverControl()
    Dim res As Long
    ReleaseCapture
    res = SendMessage(ucImage1.hwnd, WM_SYSCOMMAND, MOUSE_MOVE, 0)
End Sub

Private Sub ucImage1_Click(ByVal Button As Integer)
    If Button = vbLeftButton Then
        MoverControl
    End If
End Sub

Quiero usar este método por que voy a tener varios ucImage en el Form.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Mover con el mouse ucImage
« Respuesta #1 en: Septiembre 23, 2011, 09:44:32 pm »
podes agregarle al ucImage una propiedad que se devuelva asi mismo el Handle del usercontrol.

algo como:

Código: [Seleccionar]
Public Sub Hwnd()
Hwnd = Usercontrol1.Hwnd
End Sub

saludos.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Mover con el mouse ucImage
« Respuesta #2 en: Septiembre 23, 2011, 10:35:47 pm »
Ok, lo voy a probar camarada gracias
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Mover con el mouse ucImage
« Respuesta #3 en: Septiembre 24, 2011, 06:03:57 am »
Hola no le vas a poder agregar esa propiedad ya que ese tipo de ventanas no tienen hwnd.
pero no hace falta es tan simple como esto

Option Explicit

Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Static stcX As Long
    Static stcY As Long
    If Button = 1 Then
        Image1.Move Image1.Left + x - stcX, Image1.Top + y - stcY
    Else
        stcX = x
        stcY = y
    End If
End Sub

yo lo hice con un imagen comun supongo que el ucimage tiene la misma propiedad, lo que si te voy avisando que esto parpadea como loca.