WH_MOUSE_LL截取鼠标消息怎么写?

天一亮就跑 2012-04-21 11:03:35
我想截取鼠标侧键消息并自己重写。
截取了鼠标消息WM_XBUTTONDOWN,但是按鼠标上其他键没反应
鼠标的左右键就失灵了。
这是代码,求教哪边的问题?

LRESULT WINAPI MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
BOOL fEatKeystroke = FALSE;
LPMOUSEHOOKSTRUCT pMouseHook = (MOUSEHOOKSTRUCT FAR *)lParam;

if (wParam==0x020C && nCode==HC_ACTION)//WM_XBUTTONDOWN = 0x020C
{
CString str;
str.Format("%x", lParam);
SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)str);//这里是改变其他窗口文字来查看lParam的
fEatKeystroke = TRUE;
}

return(fEatKeystroke ? TRUE : CallNextHookEx(glhHook, nCode, wParam, lParam));
}
...全文
444 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天一亮就跑 2012-04-24
  • 打赏
  • 举报
回复
人工顶~
现在我按照3楼的方法处理了各个消息,但是发送SendInput消息时鼠标坐标不是当前坐标,而是SetHook时的坐标,这是为什么?
就像这样:鼠标移动时坐标是变化的,但是按任意键时坐标跳转回开始钩子时的坐标。。。
天一亮就跑 2012-04-23
  • 打赏
  • 举报
回复
做了后还是不对,刚刚试了后鼠标所有键失效了,卸载了钩子了,还是没用,现在回复你只能Tab切到回复框了。。。

[Quote=引用 2 楼 的回复:]

返回条件不对,不要加判断。
返回CallNextHookEx(glhHook, nCode, wParam, lParam);
[/Quote]
天一亮就跑 2012-04-23
  • 打赏
  • 举报
回复
那就是说把所有的鼠标按键消息都改成自定义?
比方说我只要改变XBUTTON的消息,但是LR都要再处理一遍?
[Quote=引用 3 楼 的回复:]

如果你没有完全处理鼠标哥哥消息最好还是自行处理之后放行默认消息
否则就会出现你现在的问题
[/Quote]
向立天 2012-04-23
  • 打赏
  • 举报
回复
如果你没有完全处理鼠标哥哥消息最好还是自行处理之后放行默认消息
否则就会出现你现在的问题
chayedanwc 2012-04-23
  • 打赏
  • 举报
回复
返回条件不对,不要加判断。
返回CallNextHookEx(glhHook, nCode, wParam, lParam);
天一亮就跑 2012-04-22
  • 打赏
  • 举报
回复
手动顶~如果不行的话有没有这方面的资料或者例子呢?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧