Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[AYUDA] MouseMove

Estas en el tema de [AYUDA] MouseMove en el foro de Visual Basic clásico en Foros del Web. Hola tengo una duda con el evento MouseMove. Lo que quiero hacer yo es dar un efecto al pasar el mouse por encima, para dar ...
  #1 (permalink)  
Antiguo 04/03/2010, 18:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 11
Antigüedad: 14 años, 3 meses
Puntos: 0
[AYUDA] MouseMove

Hola tengo una duda con el evento MouseMove. Lo que quiero hacer yo es dar un efecto al pasar el mouse por encima, para dar un ejemplo supongamos que sea un label.

Quiero que al pasar el mouse por encima aparesca el efecto que yo quiero, pero al quitarlo vuelva a la normalidad. No se como hacer que vb registre que quite el mouse por encima. Antiguamente lo hacia pasando el mouse sobre el form, devolvia las imagenes default (en botones) sin ningun efecto. Pero ahora no puedo hacerlo asi.. alguna alternativa/solucion?

Gracias !
  #2 (permalink)  
Antiguo 05/03/2010, 00:33
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: [AYUDA] MouseMove

Por lo que yo se, tal como dices que lo hacías es como debes hacerlo pero debes tener lógicamente en cuenta que el Label del que estas hablando o el control sobre el que efectúes el evento si esta sobre otro control contenedor, por ejemplo un Frame o un Picture el MouseMove que restaura el objeto será el del contenedor no el del Form ya que es éste será el primero que recibirá el Mouse

No se si me he explicado bien, pero esta es la idea.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 05/03/2010, 01:03
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: [AYUDA] MouseMove

Buenas,
podrias capturar el mouse con el control y asi saber cuando sale fuera, pero solo sirve para controles que tengan hWnd (el conrol label no tiene).

Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function GetCapture Lib "user32" () As Long

en el evento mousemove pones:

If GetCapture <> CONTROL.hwnd Then
'Capturamos el mouse y hacemos lo que queramos
SetCapture CONTROL.hwnd
End If
If X < 0 Or X > CONTROL.Width Or Y < 0 Or Y > CONTROL.Height Then
'El mouse sale fuera del control, dejamos de capturarlo y hacemos lo que queramos
ReleaseCapture
End If

Cambia CONTROL por el nombre del control, solo ten en cuenta lo que dije antes: solo sirve para controles que tengan la propiedad hWnd.

Saludos.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.