我在HOOK中扑捉到全局鼠标消息,然后我使用SendMessage(hWnd,WM_LMOUSEBUTTON,wParam,lParam);为什么 在窗口中使用捕获鼠标消息的时候,那个发生时间的Point不对,
每次Point都是一样的,在窗口上是一个值,在窗口外是另一个值。
很是郁闷。那位大侠给小的解决一下,不胜感激。

解决方案 »

  1.   

    没有WM_LMOUSEBUTTON这个消息哦~
    考虑ScreenToClient和ClientToScreen转换坐标值。
      

  2.   

    没有代码只能,以后问问题尽量把相关代码贴出来。
    肯定是以下3个方面原因:
    1.你看看hook获取是对的吗
    2.发消息传递的时候是否正确。
    3.处理消息函数是否正确。
      

  3.   

    问题网址
    http://topic.csdn.net/u/20090113/21/e7c9ac70-9c5d-4690-9e87-f3df51fcde04.html相关代码
    HOOK里面的代码
    LRESULT CALLBACK MouseProc(
      int nCode,      // hook code
      WPARAM wParam,  // message identifier
      LPARAM lParam   // mouse coordinates
    )
    {
    if(WM_RBUTTONDOWN==wParam)
    {
    if(HC_ACTION==nCode)
    {
    SendMessage(g_hWnd,WM_LBUTTONDOWN,wParam,lParam);
    //我想这样就可以给我的主窗口发送鼠标消息了
    }
    return 1;
    }
    CallNextHookEx(g_hMouse,nCode,wParam,lParam);
    }主窗口代码
    void CHookTestDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    //这里的point不对,
    }我做的是单击右键由HOOK捕获,然后给窗口发送左键消息,单击左键由窗口自己捕获,左键都是对的,右键是错的
      

  4.   

    和ScreenToClient和ClientToScreen没有关系。
    主要是捕获到的值根本就不变