小弟想在我的程序中捕捉鼠标右键的点下 当我点下右键的时候却发现不能弹出对话框LRESULT WINAPI hkPro(int code,WPARAM wParam,LPARAM lParam)
{
MSG* lpmsg;
lpmsg=(MSG*)lParam;
if (code>0)
{ if (lpmsg->message==WM_RBUTTONDOWN)  //在此发现WM_RBUTTONDOWN=0x0204 而我点击鼠标右键的到得
{                                    //消息是0x013e 请问这是为什么呀?
AfxMessageBox("右键");       } }
return CallNextHookEx(hook,code,wParam,lParam);
}

解决方案 »

  1.   

    是:wParam==WM_RBUTTONUP,并不是你那个。
      

  2.   

    lParam
    [in] Pointer to a CWPSTRUCT structure that contains details about the message.
    typedef struct {
        LPARAM lParam;
        WPARAM wParam;
        UINT message;
        HWND hwnd;
    } CWPSTRUCT, *PCWPSTRUCT;
    LRESULT WINAPI hkPro(int code,WPARAM wParam,LPARAM lParam)
    {
        MSG* lpmsg;
        lpmsg=(CWPSTRUCT*)lParam;
        if (code>0)
        {        if (lpmsg->message==WM_RBUTTONDOWN)  //在此发现WM_RBUTTONDOWN=0x0204 而我点击鼠标右键的到得
            {                                    //消息是0x013e 请问这是为什么呀?
                AfxMessageBox("右键");              }    }
        return CallNextHookEx(hook,code,wParam,lParam);
    }
      

  3.   

    呵呵,不好意思
      CWPSTRUCT* =(CWPSTRUCT*)lParam;
      

  4.   

    CWPSTRUCT* lpmsg=(CWPSTRUCT*)lParam;
      

  5.   

    我改了 可是还是不行呀 是不是不能lpmsg->message==WM_RBUTTONDOWN这样判断啊
      

  6.   

    编译能过 就是不对
    //在此发现WM_RBUTTONDOWN=0x0204 而我点击鼠标右键的到得
     //消息是0x013e 还是这个这个lpmsg->message=0x13e