MFC用了双缓存,但是快速刷新还是会闪烁

2025-05-09 21:10:30
推荐回答(1个)
回答1:

在MFC中, 有个坑爹的东西,  就是背景刷新, 跟前景刷新不是同步的.

所以你用了双缓存, 也还是会闪, 因为它永远是先绘制背景, 然后再绘制前景.

解决办法有二:

  1. 是处理OnEraseBkg相关的消息, 不绘制背景.

  2. 直接调用DC绘制, 不要调用Invalidate去刷新.  当然OnPaint中也要处理绘制, 这样在刷新的时候不至于绘制的东西变化.  直接绘制的好处是绘制得再快都不担心闪了.