我在钩子中,用SendMessage,应当怎么把glhTargetWnd传给我的程序中的lButtonUp事件,也就是在我的lButtonUp事件中应当怎么得到这个句柄?谢谢LRESULT WINAPI MouseProc(int nCode,WPARAM wparam,LPARAM lparam)
{
LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lparam;  
         if (nCode>=0)  
         {  
                  HWND glhTargetWnd=pMouseHook->hwnd;  
if (wparam==WM_LBUTTONDOWN) {
::SendMessage(glhRecieveWnd,WM_LBUTTONDOWN,wparam,lparam);
}

return CallNextHookEx(glhHookMouse,nCode,wparam,lparam); 

}

解决方案 »

  1.   

    你发送了 WM_LBUTTONDOWN, 这个消息里面无法传递你的数据,你需要先通过自定义消息把聚并传送过去,并且保留起来,以供后来使用。
    ============================================================================
    提问题时要在标题中简明扼要的说明                    给我发信息请附带原帖地址
    http://www.betajin.com/alphasun/index.htm           
    http://alphasun.18en.com/                    http://shakingtoolkit.9126.com/
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  2.   

    用::SendMessage(glhRecieveWnd,WM_USER+100,(wparam)glhTargetWnd,0);先把窗口句柄传过去,再调用::SendMessage(glhRecieveWnd,WM_LBUTTONDOWN,wparam,lparam);触发事件。LRESULT WINAPI MouseProc(int nCode,WPARAM wparam,LPARAM lparam)
    {
    LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lparam;  
             if (nCode>=0)  
             {  
                      HWND glhTargetWnd=pMouseHook->hwnd;  
    if (wparam==WM_LBUTTONDOWN) {
                                         ::SendMessage(glhRecieveWnd,WM_USER+100,(wparam)glhTargetWnd,0);
    ::SendMessage(glhRecieveWnd,WM_LBUTTONDOWN,wparam,lparam);
    }

    return CallNextHookEx(glhHookMouse,nCode,wparam,lparam); 

    }
      

  3.   

    你用SendMessage(glhRecieveWnd,WM_USER+100,(wparam)glhTargetWnd,0)来发送句柄,那我在SendMessage(glhRecieveWnd,WM_LBUTTONDOWN,(wparam)glhTargetWnd,lparam);这样不行吗?
      

  4.   

    sendmessage hwnd, WM_COPYDATA, 0, thehookhwnd
      

  5.   

    JennyVenus() :
    在哪接受消息?
      

  6.   

    在WM_COPYDATA消息中接收数据,是吧,谢谢,
    怎么得到点击的窗口的句柄呢?我主要是想得到当前点击浏览的IE的句柄,谢谢