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を使用してクリップされていることを確認します。
だから私は2つの質問があります:
1)ウィンドウが表示されているモニターにマウスがクリップされないのはなぜですか?
2)モニターが2048x1152であり、解像度が2048x1152に設定されていることがわかっているのに、ウィンドウの長方形が1360x768と測定されるのはなぜですか?