我的钩子是这样做的: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事件中滚轮滚动的方向?

解决方案 »

  1.   


              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;
    }
      

  2.   

    http://www.dc9.cn/post/mousehook.html
    我的鼠标钩子是从这里下载的代码