VC++ MFC背景位图重绘区域避免闪屏的方法

作者: 2011/5/18 8:16:51

我做了一个单文档MFC程序,在背景上加载了一个bmp图像资源,因为程序需要在改背景上用Rectangle(CRect(0,0,412,311))设置一个区域,并不断滴刷新该区域,为了防止bmp背景的闪屏,我就用双缓冲技术加载了该bmp,然后又在该背景上绘制我要动态刷新的区域【即是上面用Rectangle(CRect(0,0,412,311))产生的区域】,发现该区域有闪烁。我就想是否可以再次用双缓冲技术来绘制该区域,但是我发现这样做以后它还是有闪烁。

我的问题是:

1.这样做是否思路本身就是错的?请详细解释一下这个错误出在哪里,谢谢!

2.我是否可在已经加载进来的bmp背景上对闪烁区域单独做出某些处理,比如重载OnEraseBkgnd()函数等(我发现这种也是无法解决问题的)思路去解决该问题,烦请给出具体思路或提示代码,谢谢!

3.这是我想到的另一种解决思路,向单文档中导入(用非双缓冲技术)bmp做背景,然后在背景上再用双缓冲技术绘制我要不断刷新的区域?但是关键我不知道如何使导入的bmp作为背景,并使我要的区域能真正地在此bmp背景上重绘,请给予赐教?

特别推荐

玩家留言 跟帖评论
查看更多评论