MFC双缓冲 防止闪屏

好久没有写mfc的东西了。今天帮别人看改个闪屏的问题。

弄了挺久的。。写在把解决的方法写出来。


void CWanggeView::OnDraw(CDC* pDC) { CWanggeDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CRect rect; GetClientRect(&rect); //建立与屏幕设备描述表(前端缓冲区)兼容的内存设备描述表句柄(后备缓冲区) MemDC.CreateCompatibleDC(NULL); //这时还不能绘图,因为没有位图的设备描述表是不能绘图的 //下面建立一个与屏幕设备描述表(或者内存设备描述表)兼容的位图 MemBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height()); //将位图选入到内存设备描述表 //只有选入了位图的设备描述表才有地方绘图,画到指定的位图上 CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap); // //绘图什么的就写在这里。。。 // //将后备缓冲区中的图形拷贝到前端缓冲区 pDC->BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY); //绘图完成后的清理 MemBitmap.DeleteObject(); MemDC.DeleteDC(); }

转载于:https://www.cnblogs.com/andriod-html5/archive/2012/04/15/2539287.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值