OpenGL 콘텐츠를 보여주는 3 개의 MDI 창이있는 응용 프로그램이 있습니다. XP에서는 모든 것이 잘 작동합니다. 그러나 Vista/Win7에서 mdi 하위 창은 제대로 새로 고쳐지지 않습니다.WM_PAINT 메시지없이 OpenGL 창이 지워졌습니다.
시작 후 모든 창은 내용이 올바르게 표시됩니다. 그러나 포커스를 하나의 MDI 창에서 다음 mdi 창으로 변경하면이 두 창은 지워집니다 (즉, 흰색 만 표시하고 내용은 표시되지 않음). 윈도우즈가 왜 지워지는지 전혀 알지 못합니다. 그런 일이 발생하면 WM_ * 메시지를받지 못합니다. 물론 WM_PAINT 메시지도받지 못합니다.
해당 창 크기를 조정할 때 WM_SIZE 뒤에 WM_PAINT 메시지가 제대로 표시되고 콘텐츠를 다시 그리지 만 창 크기가 조정되어 크기가 조정되는 동안 이상한 깜박임이 발생합니다. 크기 조정이 중지 된 후 수동으로 새로 고침을 적용 할 때까지 창은 지워져 있습니다 (흰색).
이것은 Aero가 활성화되거나 비활성화 되어도 독립적으로 발생합니다.
왜 이런 일이 발생하는지 알고 싶습니다.
모든 힌트를 주셔서 감사합니다. 내가 사무실에 돌아 오면 곧 이들을 시험해 보겠다. – Stefan
np. 또한 컨텍스트 초기화 코드의 스 니펫을 게시하여 더 깊은 OpenGL 사용 경험을 가진 사람들로부터 더 나은 응답을 얻을 수도 있습니다. – meklarian
게임 루프를 사용하지 않는 한 WM_PAINT에 응답하여 그립니다. 모든 것을 그릴 경우 WM_ERASEBKGND를 무시하고 깜박임을 피하기 위해 아무 작업도 수행하지 마십시오. 특정 상황에서 다른 문제가 발생합니다 (예 : OpenGL 명령을 플러시하지 않음). – gast128