![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хук на ролик мышки
Pantera111 © (2003-12-29 08:02:00)
Ставлю хук на вращение ролика мышки:
в Dll:
--------------------------------------------------
Function MouseHook(Code: Integer; ParamW: WPARAM; ParamL: LPARAM): LRESULT;stdcall;
Begin
If Code<0 Then
Begin
Result := CallNextHookEx(HookHandle_m, Code, ParamW, ParamL);
Exit;
End;
if paramw=WM_MOUSEWHEEL then
begin
SendMessage(ProgHandle_m, WM_MOUSEMES, Paramw, Code);
end;
Result := CallNextHookEx(HookHandle_m, Code, ParamW, ParamL);
End;
Function SetMouseHook(Wnd: HWND): BOOL; stdcall;
Begin
ProgHandle_m:=Wnd;
HookHandle_m:=SetWindowsHookEx(WH_MOUSE, @MouseHook, HInstance, 0);
End;
Function RemoveMouseHook: BOOL; stdcall;
Begin
Result:=UnhookWindowsHookEx(HookHandle_m);
End;
---------------------------------------------------------
Так вот, как мне определить в какую сторону крутился ролик? Что нужно передавать в программу. По моему это должно быть в ParamL, но в каком там виде это содержится если это там?
Pantera111 (2004-01-01 21:49:00) [1]
А в win98 это работает?
YuRock (2003-12-29 10:22:00) [2]
WM_MOUSEWHEEL
fwKeys = LOWORD(wParam); // key flags
zDelta = (short) HIWORD(wParam); // wheel rotation
xPos = (short) LOWORD(lParam); // horizontal position of pointer
yPos = (short) HIWORD(lParam); // vertical position of pointer
fwKeys
Value Description
MK_CONTROL Set if the CTRL key is down.
MK_LBUTTON Set if the left mouse button is down.
MK_MBUTTON Set if the middle mouse button is down.
MK_RBUTTON Set if the right mouse button is down.
MK_SHIFT Set if the SHIFT key is down.