我有一個帶有三個MDI窗口的應用程序,所有窗口都顯示OpenGL內容。在XP上,一切正常。但在Vista/Win7上,mdi子窗口無法正常刷新。OpenGL窗口被清除,沒有WM_PAINT消息
啓動後,所有窗口都正常顯示其內容。但是當我將焦點從一個mdi窗口改變爲下一個時,這兩個窗口被清除(即,它們只顯示白色,沒有內容)。我不知道爲什麼窗口被清除,當這種情況發生時他們沒有收到任何WM_ *消息,當然也沒有收到WM_PAINT消息。
調整這些窗口的大小時,我正確地獲取WM_PAINT消息(在WM_SIZE之後)並重新繪製內容,但窗口也被清除,導致調整大小時出現奇怪的閃爍。調整大小後停止,窗口保持清除(白色),直到我手動強制刷新。
這種情況與Aero啓用或禁用無關。
任何想法爲什麼發生這種情況?
感謝您的所有提示。我一回到辦公室就會嘗試這些。 – Stefan 2009-11-17 18:10:28
np。此外,通過發佈您的上下文初始化代碼的片段,您可能會從擁有更深OpenGL體驗的人那裏獲得更好的響應。 – meklarian 2009-11-17 18:15:03
除非您使用遊戲循環,否則請響應WM_PAINT。如果你繪製所有的東西,你可以覆蓋WM_ERASEBKGND並且不做任何事情以避免閃爍。在你的特定情況下,還有一些其他問題,例如,不要衝洗OpenGL命令。 – gast128 2016-08-19 09:01:34