У меня есть приложение с тремя окнами MDI, все из которых показывают содержимое OpenGL. На XP все нормально работает. Но в Vista / Win7 дочерние окна mdi не обновляются должным образом.
После запуска все окна отображают свое содержимое правильно. Но когда я меняю фокус с одного окна mdi на другое, эти два окна очищаются (т.е. они показывают только белый цвет, без содержимого). Я понятия не имею, почему окна очищаются, они не получают никаких сообщений WM_ *, когда это происходит, и, конечно же, не получают сообщения WM_PAINT.
При изменении размера этих окон я правильно получаю сообщение WM_PAINT (после WM_SIZE) и перерисовываю содержимое, но затем окно также очищается, что приводит к странному мерцанию при изменении размера. После остановки изменения размера окно остается чистым (белым) до тех пор, пока я не принудительно обновлю его вручную.
Это происходит независимо от того, включен или выключен Aero.
Есть идеи, почему это происходит?