把嘎嘎 2025-03-13 15:15 采纳率: 43.9%
浏览 33

windows c++程序如何全局隐藏电脑鼠标

网上大部分的方法都是showCursor(FALSE),但是我写了个qt widget程序调用,只能在当前qt程序界面上隐藏鼠标,移出qt界面鼠标还是会显示,有没有什么办法彻底隐藏

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-03-13 15:16
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    windows c++程序如何全局隐藏电脑鼠标

    你遇到的问题是,使用 ShowCursor(FALSE) 只能隐藏当前窗口中的鼠标,而不能全局隐藏鼠标。

    在 Windows 中,隐藏鼠标需要使用系统 API SetSystemCursorSetCursorInfo。下面是一个示例代码,使用 C++ 和 Qt 实现全局隐藏鼠标:

    #include <Windows.h>
    #include <QtGlobal>
    
    int main() {
        // 全局隐藏鼠标
        SetSystemCursor(NULL, OCR_NORMAL);
    
        // 或者使用 SetCursorInfo
        // HCURSOR hCursor = LoadCursor(NULL, IDC_ARROW);
        // SetCursorInfo(hCursor, FALSE);
    
        return 0;
    }
    

    在上面的代码中,我们使用 SetSystemCursor 函数将鼠标隐藏为 NULL,或者使用 SetCursorInfo 函数将鼠标隐藏为 FALSE。

    请注意,这个方法需要在 Windows XP 及更高版本上才能工作。在 Windows XP 及更低版本上,可能需要使用其他方法来实现全局隐藏鼠标。

    另外,如果你想在 Qt 应用程序中隐藏鼠标,可以使用 QApplication::setOverrideCursor 函数,例如:

    QApplication app;
    app.setOverrideCursor(QCursor(Qt::BlankCursor));
    

    这将隐藏 Qt 应用程序中的鼠标,但不会全局隐藏鼠标。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月13日