electron c++ 使用SetWindowsHookEx禁止点击鼠标中键时浏览器进入滚动模式
要使用SetWindowsHookEx禁止点击鼠标中键时浏览器进入滚动模式,您需要编写一个钩子函数,并将其注册为全局钩子函数。以下是实现此功能的示例代码:
#include <Windows.h>
LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION && wParam == WM_MBUTTONDOWN)
{
return 1; // 禁止鼠标中键滚动
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
int main()
{
HHOOK hook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, GetModuleHandle(NULL), 0);
if (hook == NULL)
{
MessageBox(NULL, "Failed to install mouse hook!", "Error", MB_ICONERROR);
return 1;
}
MSG msg;
while (GetMessage(&msg, NULL, 0, 0) != 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
UnhookWindowsHookEx(hook);
return 0;
}
此代码将钩子函数MouseHookProc注册为全局低级鼠标钩子函数,当鼠标中键按下时,将返回1以禁止浏览器进入滚动模式。主循环将等待消息并将其分派给适当的窗口过程,直到收到退出消息为止。最后,使用UnhookWindowsHookEx函数取消注册钩子函数。
请注意,此方法可能会影响其他应用程序中的鼠标中键行为,因此您应该谨慎使用
原文地址: https://www.cveoy.top/t/topic/f4FS 著作权归作者所有。请勿转载和采集!