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