Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/02/2012, 19:50
joise
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 15 años, 5 meses
Puntos: 0
mouse_event(-MOUSEEVENTF_WHEEL, 0, 0, WHEEL_DELTA, 0) en windows 7 (VB6)

hola, en Visual Basic 6 tengo un problema, parece ser que el mouse_event() para mover la ruedita no funciona en windows 7 o no se que le pasa porque en windows xp anda perfecto y en windows 7 no anda, aca les dejo un ejemplo sencillo para que lo prueben:

en un EXE estandar pongan un Listbox

en el formulario escriban lo siguiente
Código:
Private Sub Form_Load()
For i = 1 To 200
List1.AddItem (i)
Next i
List1.ListIndex = 100
End Sub

Private Sub List1_Click()
Call mouse_event(-MOUSEEVENTF_WHEEL, 0, 0, WHEEL_DELTA, 0)
End Sub
luego agreguen un modulo y escriban lo siguiente
Código:
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down
Public Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up
Public Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down
Public Const MOUSEEVENTF_RIGHTUP = &H10 ' right button up
Public Const WHEEL_DELTA = 120
Public Const MOUSEEVENTF_WHEEL = &H800
Denle iniciar y hagan click en el listbox.
En windows xp la barrita hace scroll hacia arriba, pero en windows 7 no se mueve.

Una aclaracion, el objetivo de la pregunta no es hacer mover la barrita del listbox, sino que quiero que funcione el scroll mouse_event() en windows 7. Asqiue por favor me gustaria que me digan porque no funciona el scroll mouse_event() en windows 7.

Otra aclaracion, el movimiento del mouse y los 3 botones funcionan bien en xp y en 7, lo unico que no funciona es la ruedita cuando quiero hacer scroll.

Cualquier detalle que necesiten pidanme.
Desde ya muchas gracias.

Última edición por joise; 21/02/2012 a las 20:08 Razón: Le puse en el titulo la version de visual basic que uso Visual Basic 6