我做了一个程序,用钩子程序响应鼠标右键双击事件,为了测试,我是当鼠标右键双击时谈出一个MESSAGEBOX,代码如下:
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
char msg[10];
LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lParam;
if (nCode>=0)
{
//双击鼠标右键进行粘贴操作
if (wParam==WM_LBUTTONUP)
{
//SendMessage(g_hWnd,WM_PASTE,0,0);
i++;
sprintf(msg,"%d",i);
::MessageBox(NULL,msg,"title",MB_OK);
return TRUE;
}
//单击鼠标中键进行数据复制
}
// }
// 传给系统中的下一个钩子
return CallNextHookEx(g_hmouse, nCode, wParam, lParam);
}但是我在测试时,双击有键时确一下谈出了30个窗口,请问这是怎么回事,望各位高手帮忙解答。
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
char msg[10];
LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lParam;
if (nCode>=0)
{
//双击鼠标右键进行粘贴操作
if (wParam==WM_LBUTTONUP)
{
//SendMessage(g_hWnd,WM_PASTE,0,0);
i++;
sprintf(msg,"%d",i);
::MessageBox(NULL,msg,"title",MB_OK);
return TRUE;
}
//单击鼠标中键进行数据复制
}
// }
// 传给系统中的下一个钩子
return CallNextHookEx(g_hmouse, nCode, wParam, lParam);
}但是我在测试时,双击有键时确一下谈出了30个窗口,请问这是怎么回事,望各位高手帮忙解答。
if (wParam==WM_LBUTTONUP)
如果是同一个Thread,那就用WindowFromPoint把Hwnd显示出来看看,最好把GetWindowText也显示出来,我猜想可能会是不同的Hwnd,但除了第一个,其他的都是你那个MessageBox或者它的那个Button