1.安装钩子
在控件的CPP文件定义
HHOOK g_hHook = NULL;
...控件指针...
g_hHook = SetWindowsHookEx(WH_MOUSE, MouseProc, _AtlBaseModule.GetModuleInstance(), 0);
_AtlBaseModule.GetModuleInstance() //获得HINSTALL
0:当前线程
钩子函数
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
//这里截获的是鼠标滚轮滚动消息,问题在windows 7 中定义是0x20E,但是实际的消息是0x20A,因此在这里都加进去了
if(nCode >= 0 && (wParam == WM_MOUSEHWHEEL || wParam == 0x20A))
{
PMOUSEHOOKSTRUCTEX pmsex = (PMOUSEHOOKSTRUCTEX)lParam;
short zDelta = GET_WHEEL_DELTA_WPARAM(pmsex->mouseData);
...控制指针完成工作...
}
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
2.卸载钩子
UnhookWindowsHookEx(g_hHook);
本文详细介绍了如何在Windows环境下使用钩子技术捕获并处理鼠标滚轮滚动事件,包括钩子函数的定义与实现,以及在不同操作系统版本间的兼容性调整。
6041

被折叠的 条评论
为什么被折叠?



