在MFC中, 有个坑爹的东西, 就是背景刷新, 跟前景刷新不是同步的.
所以你用了双缓存, 也还是会闪, 因为它永远是先绘制背景, 然后再绘制前景.
解决办法有二:
是处理OnEraseBkg相关的消息, 不绘制背景.
直接调用DC绘制, 不要调用Invalidate去刷新. 当然OnPaint中也要处理绘制, 这样在刷新的时候不至于绘制的东西变化. 直接绘制的好处是绘制得再快都不担心闪了.