mfc中的双缓冲机制

简单来说其基本的概念:专门设定一个暂时存储图形信息的内存,将所有暂时的画图内容先放到暂存CDC中,然后再放入完所有的以后调用.

具体实现步骤

1.首先是定义一个暂时的设备上下文
CDC				h_BufDC;				// 双缓冲层
CBitmap			memBitmap;				//定义一个位图对象

2.然后对其进行初始化
CDC	*pDC = GetDC();
h_BufDC.CreateCompatibleDC(pDC);
memBitmap.CreateCompatibleBitmap( pDC, SCREEN_W, SCREEN_H);
SelectObject(h_BufDC,memBitmap);
h_BufDC.FillSolidRect( 0, 0, SCREEN_W, SCREEN_H, RGB(255, 255, 255) );


3.操作

//

....中间可以将所需要的画图等其他的操作放到h_BufDC中去做
//
4.接着使用显示
CDC *pDC = GetDC();//获得显示器设备上下文,用于最终的显示
pDC->BitBlt( 0, 0, SCREEN_W, SCREEN_H, &h_BufDC, 0, 0, SRCCOPY );//将暂存内容复制到显示器设备上下文中,从而显示




5.最后释放掉
memBitmap.DeleteObject();		//删除位图对象
h_BufDC.DeleteDC();				//删除缓冲dc


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值