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);