gpt4 book ai didi

windows - 剪辑光标不工作

转载 作者:可可西里 更新时间:2023-11-01 11:36:58 25 4
gpt4 key购买 nike

我正在开发 DX11 游戏,我想在全屏模式下将光标剪切到全屏窗口。我用这个方法


void MyClass::_SetupCursor( BOOL bFullscreen ) {
// Clip cursor if requested
if( bFullscreen ) {
if(m_bShowCursorWhenFullscreen) {
ShowCursor(m_bShowCursorWhenFullscreen);
}
if(m_bClipCursorWhenFullscreen) {
// Confine cursor to full screen window
RECT windowRect;
GetWindowRect( m_hWnd, &windowRect );
ClipCursor( &windowRect );
}
}
else {
ShowCursor( TRUE );
ClipCursor( NULL );
}
}

但是,当我在 2 个显示器的全屏模式下时,我仍然可以将鼠标移到另一个显示器上。在全屏模式下将分辨率设置为 2048x1152,我得到的窗口矩形为 1360x768,这就是它被裁剪的位置。我确认使用 GetClippedRect 对其进行了剪辑。

所以我有两个问题:

1) 为什么鼠标没有夹在我的窗口所在的监视器上?

2) 为什么我知道显示器是 2048x1152 而分辨率设置为 2048x1152,但窗口矩形测量为 1360x768?

最佳答案

事实证明,要使 ClipCursor 正常工作,您必须拥有所有 DX11 缓冲区和正确的窗口大小。我通过首先全屏运行我的应用程序发现了这一点,没有切换到它,并且 ClipCursor 工作得很好,即使有多个显示器。有关 ClipCursor 何时失败的更多信息,请查看我在 stackoverflow 上的其他问题:Why is D3D10SDKLayers.dll loaded during my DX11 game? .

每当出现我在该问题中描述的情况时,ClipCursor 都会失败。另外,在回答我的第二个问题时,由于我在链接问题中描述的情况,窗口大小不正确。

关于windows - 剪辑光标不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com