我的钩子是这样做的:static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)
{
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
}
LPMSG msg = (LPMSG)lParam;
switch(msg->message)
{
case WM_MOUSEMOVE:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 0, time);//hWndServer是一个窗口句柄
break;
}
case WM_LBUTTONDOWN:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 1, time);
break;
}
case WM_LBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 2, time);
break;
}
case WM_LBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 3, time);
break;
}
case WM_RBUTTONDOWN:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 4, time);
break;
}
case WM_RBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 5, time);
break;
}
case WM_RBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 6, time);
break;
}
case WM_MBUTTONDOWN:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 7, time);
break;
}
case WM_MBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 8, time);
break;
}
case WM_MBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 9, time);
break;
}
case 522://WM_MOUSEWHEEL:522
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 10, time);
break;
}
default:
break;
}
return CallNextHookEx(hook, nCode, wParam, lParam);
} // msghook
hook = SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)msghook,
hInst,
0);请问怎么判断WM_MOUSEWHEEL事件中滚轮滚动的方向?
{
if(nCode < 0)
{
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
}
LPMSG msg = (LPMSG)lParam;
switch(msg->message)
{
case WM_MOUSEMOVE:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 0, time);//hWndServer是一个窗口句柄
break;
}
case WM_LBUTTONDOWN:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 1, time);
break;
}
case WM_LBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 2, time);
break;
}
case WM_LBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 3, time);
break;
}
case WM_RBUTTONDOWN:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 4, time);
break;
}
case WM_RBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 5, time);
break;
}
case WM_RBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 6, time);
break;
}
case WM_MBUTTONDOWN:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 7, time);
break;
}
case WM_MBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 8, time);
break;
}
case WM_MBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 9, time);
break;
}
case 522://WM_MOUSEWHEEL:522
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 10, time);
break;
}
default:
break;
}
return CallNextHookEx(hook, nCode, wParam, lParam);
} // msghook
hook = SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)msghook,
hInst,
0);请问怎么判断WM_MOUSEWHEEL事件中滚轮滚动的方向?
case 522://WM_MOUSEWHEEL:
{ int delta = (int) (msg->wParam); // wheel rotation
if( delta > 0 )
{
TRACE("WM_MOUSEWHEEL UP \n );
}
else
{
TRACE("WM_MOUSEWHEEL DOWN \n");
}
break;
}
我的鼠标钩子是从这里下载的代码