Как правильно использовать WinAPI для управления полноэкранным режимом окна Windows?
Вот моя проблема:
У меня есть приложение, которое должно быть полноэкранным.Я использую функцию ChangeDisplaySettings () (winuser.h) со значением CDS_FULLSCREEN, чтобы перевести мое окно в полноэкранный режим при получении WM_ACTIVATE
с (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE)
:
DEVMODE dmScreenSettings;
memset (&dmScreenSettings, 0, sizeof (dmScreenSettings));
dmScreenSettings.dmSize = sizeof (dmScreenSettings);
dmScreenSettings.dmPelsWidth = 1280;
dmScreenSettings.dmPelsHeight = 720;
dmScreenSettings.dmBitsPerPel = 32;
dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN);
Я использую ту же функцию с CDS_RESETзначение, чтобы вернуть его в «нормальный» режим при получении WM_ACTIVATE
с (wParam == WA_INACTIVE)
:
ChangeDisplaySettings(&dmScreenSettings, CDS_RESET);
Когда я впервые запускаю свое приложение, оно работает в полноэкранном режиме.Я использую ALT + TAB для переключения на другое приложение на моем компьютере.Мое приложение свернулось.Это работает хорошо.Затем я возвращаюсь к своему приложению, и оно появляется в полноэкранном режиме.Опять же, это работает хорошо.Но если я хочу вернуться к другому приложению еще раз, мое приложение регистрируется в полноэкранном режиме, скрывая все остальные приложения на моем компьютере.
Примечание: мое окно создается с помощью функции CreateWindowEx () со следующими параметрами:
DWORD dwExStyle = WS_EX_TOPMOST;
DWORD dwStyle = WS_VISIBLE | WS_POPUP;
1) Есть ли другой способ, кроме использования ChangeDisplaySettings () для изменения полноэкранного режима?
2) Использую ли я хорошие значения?
3) Есть ли что-нибудь, что я забыл сделать?
Заранее спасибо за все ваши ответы.С уважением,