Я работаю над игрой 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 );
}
}
Однако, когда я нахожусь в полноэкранном режиме с двумя мониторами, я все еще могу переместить мышь на другой монитор. С разрешением 2048x1152 в полноэкранном режиме я получаю прямоугольник окна как 1360x768, и это то, к чему оно привязано. Я подтверждаю, что это обрезается с помощью GetClippedRect.
Итак, у меня два вопроса:
1) Почему мышь не прижимается к монитору, в котором находится мое окно?
2) Почему прямоугольник окна измеряется как 1360x768, когда я точно знаю, что монитор имеет разрешение 2048x1152, а разрешение установлено на 2048x1152?