要使用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函数取消注册钩子函数。

请注意,此方法可能会影响其他应用程序中的鼠标中键行为,因此您应该谨慎使用

electron c++ 使用SetWindowsHookEx禁止点击鼠标中键时浏览器进入滚动模式

原文地址: https://www.cveoy.top/t/topic/f4FS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录