Похоже, что моя проблема может быть такой же, как и вопрос без ответа ( OpenGL с GLUT в Windows 7, в полноэкранном режиме не отображается окно сообщения ).
Поскольку я перешел на Win7 в качестве среды разработки и возможной целевой платформы для своих приложений, я заметил регресс в их поведении.
Всякий раз, когда у меня есть полноэкранное окно, содержащее полноэкранный контекст OpenGL, у приложений возникают проблемы с отображением модальных диалоговых окон (таких как окна сообщений, диалог открытия файла и т. Д.)
Окно просто создано в стиле WS_POPUP. В контексте GL нет ничего особенного. И все хорошо с Windows XP.
Проблема в Windows 7 заключается в том, что модальные диалоговые окна не видны при их открытии (возможно, они появляются за полноэкранным окном). Вы должны Alt-Tab приложения, чтобы диалоговые окна появлялись.
Это серьезная проблема, поскольку приложение кажется замороженным, хотя оно фактически ожидает ввода данных пользователем.
Кто-нибудь сталкивался с таким поведением? Кто-нибудь знает обходной путь?
Я быстро составил пример тестового приложения; его исходный код можно найти по адресу http://pastebin.com/K4v2NNDs. Простой проект MSVC8 можно найти здесь .
PS. Я также разместил сообщения на форумах opengl.org, извините за тех, кто следит за обоими.
EDIT
Благодаря комментарию Криса я протестировал модальное диалоговое окно для различных событий, таких как WM_TIMER или WM_RBUTTONUP, но проблема все еще там.
Я также вызвал 'DwmEnableComposition' с 'DWM_EC_DISABLECOMPOSITION' просто чтобы проверить: проблема все еще существует.
Я также протестировал приложение, заменив биты OpenGL на DirectX, и таким образом все работает как положено ... Это действительно OpenGL, вызывающий проблему.
(обновленная пастина http://pastebin.com/Rq1Ehm3w и мой блокнот)
EDIT
Проблема также существует в Windows 8.