在xp下,MFC+OpenGL有时候会出现花屏的现象,在Win7下却运行良好。XP下的花屏“效果”如下图所示:
虽然关掉弹出的对话,能正常显示,但对用户来说却不友好。
原因:
在Win7下,当拖动顶层的对话框时候,不会调用View刷新视图。而在Xp下,却调用了View的EraseBackground消息,却没有调用WM_PAINT消息。
而一般OpenGL的程序,都会响应EraseBK消息,直接返回为True。
解决办法:
检查是否为XP,若是则在EraseBk响应函数里面重绘视图。当然能够避免XP在这种情况下调用EraseBk消息最好。