怎么在VC++ MFC的背景位图下重绘一个区域时避免闪屏

如何在VC++ MFC的背景位图上重绘一个区域时避免闪屏
我做了一个单文档MFC程序,在背景上加载了一个bmp图像资源,因为程序需要在改背景上用Rectangle(CRect(0,0,412,311))设置一个区域,并不断滴刷新该区域,为了防止bmp背景的闪屏,我就用双缓冲技术加载了该bmp,然后又在该背景上绘制我要动态刷新的区域【即是上面用Rectangle(CRect(0,0,412,311))产生的区域】,发现该区域有闪烁。我就想是否可以再次用双缓冲技术来绘制该区域,但是我发现这样做以后它还是有闪烁。
我的问题是:1.这样做是否思路本身就是错的?请详细解释一下这个错误出在哪里,谢谢!
  2.我是否可在已经加载进来的bmp背景上对闪烁区域单独做出某些处理,比如重载OnEraseBkgnd()函数等(我发现这种也是无法解决问题的)思路去解决该问题,烦请给出具体思路或提示代码,谢谢!
  3.这是我想到的另一种解决思路,向单文档中导入(用非双缓冲技术)bmp做背景,然后在背景上再用双缓冲技术绘制我要不断刷新的区域?但是关键我不知道如何使导入的bmp作为背景,并使我要的区域能真正地在此bmp背景上重绘,请给予赐教?

------解决方案--------------------
少用动态刷新的函数。整体重绘。会发现好很多
------解决方案--------------------
你看一眼 父窗口有没有收到WM_PAINT.

有时自己OnEreaseBkgrnd return true了。
但有些时候你会调用一些函数, 导致子窗口刷新同时父窗口也会调用EreaseBkgrnd或者OnPaint。
这样你虽然用了双缓冲, 但是父窗口的刷新, 可能导致你子窗口两次OnPaint中间产生间隔, 显示父背景, 而形成闪烁.