如何捕捉程序窗口外的鼠标单击? 是全局的..?我试过MOUSEMOVE可以啊... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你怎么用WH_CALLWNDPROC啊?为什么不用WH_MOUSE?我认为使用SetCapture不好,因为这样的话正常的点击都会失效,你的程序总不能负责分发鼠标消息吧? MFC的WWnd类有一个“捕鼠器”SetCapturer()函数,该函数将所有的鼠标输入送到当前窗口,不管光标在什么地方!当当前窗口不用它时,最好将它放掉,ReleaseCapture(); to sxbyl:我用的就是WH_MOUSE,你为什么说我用WH_CALLWNDPROC?看来是我的钩子有问题。是不是上边的代码只有在WH_CALLWNDPROC时才会有?哪WH_MOUSE怎么用? 我改成了WH_MOUSE,但这样更无法判断WM_LBUTTONUP消息了?LRESULT WINAPI MouseProc(int nCode,WPARAM wParam,LPARAM lParam){ LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lParam; if (nCode>=0) { //Do What? } return CallNextHookEx(g_hHook,nCode,wParam,lParam);} 你看一下MSDN中关于MouseProc的说明wParam Specifies the identifier of the mouse message. wParam就是WM_LBUTTON之类的消息,按键的具体信息在lParam里 还有,你MouseProc的申明有问题,应该是LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam) 确定你用的是WH_MOUSE钩子吗?那么,你判断消息类别的语句有问题。试着用下面的看看:LRESULT CALLBACK Mouse(int code,WPARAM wParam,LPARAM lParam){ if(code==HC_ACTION) { if(wParam==WM_LBUTTONUP) { MessageBox(.......); } }} 网络通信程序接收数据问题(UDP) 祝贺本ID一周答题过150,技术分涨300分。散分喽。前10名+10 抓屏时切换桌面到登录窗口或屏保时,抓屏失效,有什么好的解决方法吗 sqldmo.dll和sqldmo.rll有和不同 请教《VC++技术内幕》中的一个例题 flash->位图 我想用JAVA做一个数据库 有没有人知道如何用winsock 实现rtsp 协议? 关于DICOM 读取一个文本文件并把文件中的文本保存在一个CString对象中,如何能做到。 入门问题也~~~ 关于线程的小问题
我认为使用SetCapture不好,因为这样的话正常的点击都会失效,你的程序总不能负责分发鼠标消息吧?
LRESULT WINAPI MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lParam;
if (nCode>=0)
{
//Do What?
}
return CallNextHookEx(g_hHook,nCode,wParam,lParam);
}
wParam
Specifies the identifier of the mouse message.
wParam就是WM_LBUTTON之类的消息,按键的具体信息在lParam里
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
LRESULT CALLBACK Mouse(int code,WPARAM wParam,LPARAM lParam)
{
if(code==HC_ACTION)
{
if(wParam==WM_LBUTTONUP)
{
MessageBox(.......);
}
}
}