- 1
- 0
- 约3.16千字
- 约 3页
- 2021-10-19 发布于福建
- 举报
我们的绘图过程大多放在 OnDraw 或者 OnPaint 函数中, OnDraw 在进行屏幕显示时是由 OnPaint 进行调
用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用 OnPaint ,而背景色
往往与绘图内容反差很大,这样在短时间内背景色与显示图形的交替出现,使得显示窗口看起来在闪。
这就要用到双缓存的方法了。双缓冲就是除了在屏幕上有图形进行显示以外,在内存中也有图形在绘制。
我们可以把要显示的图形先在内存中绘制好,然后再一次性的将内存中的图形按照一个点一个点地覆盖到
屏幕上去(这个过程非常快,因为是非常规整的内存拷贝)。这样在内存中绘图时,随便用什么反差大的
背景色进行清除都不会闪,因为看不见。当贴到屏幕上时,因为内存中最终的图形与屏幕显示图形差别很
小(如果没有运动,当然就没有差别),这样看起来就不会闪。
双缓存 :就是在内存中准备一块区域 ,把要显示的位图都加载到内存中 ,然后调用 BitBlt 函数 ,把内存设备
复制到显示设备上 ,这样就可以防止闪屏了 ..
下面是在 VC 中,实现的步骤:
1 新建一单文档 MFC 程序 ,取名为 test1.
2 在 CTest1View 中添加两个成员函数 void ShowBmpUseDbBuffer(); // 用双缓存显示位图 void
ShowBmp(); // 没有使用双缓存就显示位图 .. 添加一菜单命令 ,启动 Timer, 观察两种效果
3 主要实现代码如下 :
// 使用双缓存技术 ,显示位图 ,防止闪屏
void CTest1View::ShowBmpUseDbBuffer()
{
CDC *pDC = GetDC();
CBitmap BmpBack,BmpFront,BmpMem; // 背景 ,前景 , 内存位图
CDC BackDC,FrontDC,MemDC; // 背景设备 ,前景设备 , 内存设备
//创建与显示设备兼容的位图
BmpMem.CreateCompatibleBitmap(pDC, 1024, 768);
//加载位图
BmpBack.LoadBitmap(IDB_BITMAP_BACK);
BmpFront.LoadBitmap(IDB_BITMAP_FRONT);
//创建与显示设备兼容的设备
BackDC.CreateCompatibleDC(pDC);
FrontDC.CreateCompatibleDC(pDC);
MemDC.CreateCompatibleDC(pDC);
//将位图选入设备
MemDC.SelectObject(BmpMem);
BackDC.SelectObject(BmpBack);
MemDC.BitBlt(0, 0, 1024, 768, BackDC, 0, 0, SRCCOPY);
//将前景位图选入设备
FrontDC.SelectObject(BmpFront);
MemDC.BitBlt(0, 0, 1024, 768, FrontDC, 0, 0, SRCCOPY);
//只一次性的向显示设备显示位图 ,不会出现闪屏
pDC-BitBlt(0, 0, 1024, 768, MemDC, 0, 0, SRCAND);
//释放资源
pDC-DeleteDC();
BackDC.DeleteDC();
FrontDC.DeleteDC();
MemDC.DeleteDC();
}
// 没有使用双缓存技术 ,出现闪屏
void CTest1View::ShowBmp()
{
CDC *pDC = GetDC();
CBitmap BmpBack,BmpFront; // 背景 ,前景位图
CDC BackDC,FrontDC; // 背景设备 ,前景设备 ,内存设备
//加载位图
BmpBack.LoadBitmap(IDB_BITMAP_BACK);
BmpFront.LoadBitmap
您可能关注的文档
最近下载
- 明代宗教信仰与思想控制.docx VIP
- 江苏省南通市2024-2025学年高二上学期期末学业质量监测语文试卷(含答案).pdf VIP
- 国就有成人演出的电影了?想看就要冒生命危险.pdf VIP
- 综合素质练习题及答案.doc VIP
- 2020-2021学年北京高三化学二轮复习 反应原理型简答题(突破二卷)(word版 含答案).docx VIP
- 电力拖动控制线路安装与检修(白银矿冶职业技术学院)知到智慧树答案.docx VIP
- 煤炭巷道掘砌工(高级工)资格考试题库(全真题库).docx VIP
- 影像叙事中情感共鸣生成机制.docx VIP
- 同轴二级圆柱齿轮减速器的设计(硬齿面).doc VIP
- 基于GPU多线程多通道图像高速重构方法、设备及介质.pdf VIP
原创力文档

文档评论(0)