Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Хук на ролик мышки


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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо