c++ - 将鼠标光标隐藏在 Windows 中的特定客户区域

标签 c++ windows cursor directx hide

我已将 directx 嵌入到我的应用程序的子窗口中,并且希望仅当窗口光标位于该客户区域时才隐藏它。我知道一般情况下如何隐藏光标,如果只在光标不在任何客户区域上方时显示光标,我确实设法找到了一个临时示例,但这对此没有帮助。 如何仅在光标位于特定客户区(/子窗口)上时隐藏光标?

编辑: 这和我得到的一样接近,但是光标在 dx 区域上时不可预测地闪烁(当鼠标移动时)

case WM_SETCURSOR:
{
    static bool bCursorVisible = TRUE;

    if( hWnd!=hwD3DArea && !bCursorVisible )
    {
        ShowCursor((bCursorVisible=TRUE));
    }
    else if( hWnd==hwD3DArea && bCursorVisible )
    {
        ShowCursor((bCursorVisible=FALSE));
        return TRUE;
    }
}
break;

编辑2: 啊啊! 您必须在此消息中使用 wParam 而不是 hWnd 这是工作代码:

case WM_SETCURSOR:
{
    static bool bCursorVisible = TRUE;

    if( ((HWND)wParam)!=hwD3DArea && !bCursorVisible )
    {
        ShowCursor((bCursorVisible=TRUE));
    }
    else if( ((HWND)wParam)==hwD3DArea && bCursorVisible )
    {
        ShowCursor((bCursorVisible=FALSE));
        return TRUE;
    }
}
break;

最佳答案

case WM_SETCURSOR:
{
    if (LOWORD(lParam) == HTCLIENT)
    {
        SetCursor(NULL);
        return TRUE;
    }

    return DefWindowProc(hWnd, msg, wParam, lParam);
}

关于c++ - 将鼠标光标隐藏在 Windows 中的特定客户区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11394594/

相关文章:

Java SWT 手动光标更改后不会自动更改光标

Android Cursor.registerContentObserver()

c++ - 指向静态数组,但在不使用 * 的情况下取消引用

python - 如何在 Windows 上获取总磁盘大小?

C++ 异常,thow const char* 类型并捕获

windows - 从 XP/Vista 迁移到 Windows 7 时,程序员应该了解什么?

windows - 如何打印 XPS 文件?

html - 单击更改光标以获得带有 css 的图像映射链接

c++ - 你可以内联静态成员函数吗?

c++ - 在 Visual Studio 2013 中使用/fa 制作 list 文件?