Кроме того, это происходит только в том случае, если я изначально создаю свое окно в полноэкранном режиме. Если я создаю его в оконном режиме, затем перехожу в полноэкранный режим, затем снова перехожу в оконный режим, то при смене фокуса размер сохраняется правильно. Итак, запуская в оконном режиме, я каким-то образом устанавливаю скрытое состояние.
Как я могу предотвратить это? Есть ли функция для установки состояния скрытого размера?
ОБНОВЛЕНИЕ
Начинаем в оконном режиме, а затем переход в полноэкранный режим с помощью SetWindowPos() не устранил проблему.
Однако изменение размера окна с помощью Alt+Enter решает проблему. Итак, мое СУПЕР-хакерское решение, которое действительно работает, — это имитировать нажатие Alt+Enter, отправляя ключевые события в окно:
Код: Выделить всё
if (setFullScreenDelayed)
{
setFullScreenDelayed = false;
// Press Alt key
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wVk = VK_MENU;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
// Press Enter key
ip.ki.wVk = VK_RETURN;
SendInput(1, &ip, sizeof(INPUT));
// Release Enter key
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
// Release Alt key
ip.ki.wVk = VK_MENU;
SendInput(1, &ip, sizeof(INPUT));
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... ds-wm-size