Если я прокручиваю окно с помощью компьютерной мыши, я получаю следующие результаты Spy ++:
fwKeys: 0, zDelta: -120
Мне нужно эмулировать событие колеса мыши по коду, поэтому я использую PostMessage так:
Public Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal dwLength As Long) As Long
PostMessage lHwnd, WM_MOUSEWHEEL, MakeWParam(0, -120), 0
Public Function MakeWParam(ByVal uHigh As Long, ByVal uLow As Long) As Long
Dim foo(0 To 1) As Integer
Dim lRet As Long
foo(0) = uHigh
foo(1) = uLow
Call CopyMemory(lRet, VarPtr(foo(0)), Len(lRet))
MakeWParam = lRet
End Function
Это, однако, приводит к тому, что Spy ++ говорит мне следующее:
fwKeys: 3C40, zDelta: 8996
Я не понимаю, где я делаю это неправильно.
Согласно MSDN, zDelta может быть извлеченным из wParam с помощью GET_WHEEL_DELTA_PARAM, но я не вижу никакой информации о том, как этот wParam фактически создается из fwKeys и zDelta. И, очевидно, мой подход не верен.
Я также попробовал SendMessage вместо PostMessage, но результат был тот же.
Спасибо за помощь!