我做了一个专门监控鼠标操作的钩子程序,鼠标的左右键捕获都
很正常,但是在捕获WM_MOUSEWHEEL消息时,发现无法获得鼠标滚轮的前后滚动的消息,有谁知道,望指教
static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
unsigned int fwKeys ;
short zDelta , xPos , yPos ; // vertical position of pointer
if(nCode < 0)
{ /* pass it on */
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
} /* pass it on */
LPMSG msg = (LPMSG)lParam; switch(msg->message)
{
case WM_MOUSEMOVE:
case WM_NCMOUSEMOVE:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 0, 0);
break;
}
case WM_RBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 1, 0);
break;
}
case WM_LBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 2, 0);
break;
}
case WM_MOUSEWHEEL:
//鼠标滚轮的前后滚动的消息 break;
default:
break;
}
return CallNextHookEx(hook, nCode, wParam, lParam);
}
很正常,但是在捕获WM_MOUSEWHEEL消息时,发现无法获得鼠标滚轮的前后滚动的消息,有谁知道,望指教
static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
unsigned int fwKeys ;
short zDelta , xPos , yPos ; // vertical position of pointer
if(nCode < 0)
{ /* pass it on */
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
} /* pass it on */
LPMSG msg = (LPMSG)lParam; switch(msg->message)
{
case WM_MOUSEMOVE:
case WM_NCMOUSEMOVE:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 0, 0);
break;
}
case WM_RBUTTONUP:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 1, 0);
break;
}
case WM_LBUTTONDBLCLK:
{
PostMessage(hWndServer, UWM_MOUSEMOVE, 2, 0);
break;
}
case WM_MOUSEWHEEL:
//鼠标滚轮的前后滚动的消息 break;
default:
break;
}
return CallNextHookEx(hook, nCode, wParam, lParam);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货