WH_MOUSE_LL 钩子,避免得到无用的 WM_MOUSEMOVE 事件
Posted
技术标签:
【中文标题】WH_MOUSE_LL 钩子,避免得到无用的 WM_MOUSEMOVE 事件【英文标题】:WH_MOUSE_LL hook, avoid getting useless WM_MOUSEMOVE events 【发布时间】:2012-10-07 17:10:42 【问题描述】:有没有办法避免在WH_MOUSE_LL
钩子中接收WM_MOUSEMOVE
事件?我只对***旋转和按钮感兴趣。接收WM_MOUSEMOVE
的性能成本在我的场景中是不可接受的。
我不能使用WH_MOUSE
。
【问题讨论】:
【参考方案1】:没有办法告诉钩子不接收特定消息。当您挂钩鼠标时,尤其是低级挂钩时,您会收到鼠标所做的一切。
【讨论】:
根据您的经验,是否足以有一个完全专用于该钩子的线程(一个简单的GetMessage
循环,一种快速调度到主线程,实时优先级)来降低性能问题?
鼠标不是很灵敏。这可能是由于安装钩子的线程并不完全专用于消息循环(它用PeekMessage
然后GetMessage
泵送它们,它不会在对GetMessage
的阻塞调用中等待它们) .以上是关于WH_MOUSE_LL 钩子,避免得到无用的 WM_MOUSEMOVE 事件的主要内容,如果未能解决你的问题,请参考以下文章
vc里面拦截WM_PAINT,并在钩子过程函数里面增自绘的SetWindowsHookEx的第一个参数指定为哪一个?