Cambiar imagen de botón en VB

¿Cómo puedo hacer para cambiar la imagen de un botón cuando le paso por encima el mouse?
El evento MouseMove no me sirve porque cuando el movimiento es muy rápido el evento no se detecta.
¿Existe una api de windows para poder hacer esto sin usar el mencionado evento?.

1 respuesta

Respuesta
1
Lo siento por el retraso pero ya sabes la vacaciones.
He probado lo que tu me dices con el evento MouseMove y a mi si me lo detecta siempre sea cual sea la rapidez con la que lo pase. Creo que lo único que puedo hacer diferente es que ejecuto 'DoEvents' lo que hace que se ejecuten todas las ordenes pendientes, aquí te mando el código de un pequeño proyecto que he utilizado para hacer las pruebas:
El proyecto contendrá un form y en este form un CommandButton, también contiene un archivo de recursos con 2 imágenes que cargo con LoadResPicture.
Option Explicit
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Cuando pasa el raton por encima le cambiamos la imagen
Command1.Picture = LoadResPicture(102, 0)
'Hacemos que se ejecuten todas las ordenes pendientes
DoEvents
End Sub
Private Sub Form_Load()
'Cargamos las imagenes originales
Command1.Picture = LoadResPicture(101, 0)
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'si pasa el raton por el formulario ponemos las imagenes originales
Command1.Picture = LoadResPicture(101, 0)
End Sub
Respecto a lo de utilizar la API de Win32 no he encontrado ninguna con las que puedas hacer lo que quieres(que puede haberla pero yo no la conozco).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas