在xp下,MFC+OpenGL有時候會出現花屏的現象,在Win7下卻運行良好。XP下的花屏“效果”如下圖所示:

雖然關掉彈出的對話,能正常顯示,但對用戶來說卻不友好。
原因:
在Win7下,當拖動頂層的對話框時候,不會調用View刷新視圖。而在Xp下,卻調用了View的EraseBackground消息,卻沒有調用WM_PAINT消息。
而一般OpenGL的程序,都會響應EraseBK消息,直接返回為True。
解決辦法:
檢查是否為XP,若是則在EraseBk響應函數里面重繪視圖。當然能夠避免XP在這種情況下調用EraseBk消息最好。
