windows 双缓冲绘图

windows双缓冲的作用:解决大多数闪烁问题

因为,当我们需要不停的在屏幕上绘制图案的时候,窗口会不停的被重绘,这就导致出现闪烁问题。


双缓冲技术的原理: 先将要绘制的图全部写进一个内存DC里,然后将内存DC里的内容,一次性绘制到窗体上。

简单的说一下步骤:


1.创建一个窗体的兼容DC:

                                 HDC hdcDst = ::GetDC( m_hWnd );

		m_hdcMem		  = ::CreateCompatibleDC(hdcDst); //hdcDst 为窗体的dc
		hBitMap   = ::CreateCompatibleBitmap(hdcSrc,nWeight,nHeight);  //nWeight,nHeight 为窗体的宽 和 高
		::SelectObject(m_hdcMem,hBitMap); //将兼容位图选进兼容Dc里(因为,兼容DC是内存,只有这样才能知道需要多大的内存,来保存绘图)

2.在兼容DC里画图:

  略(具体就是用 m_hdcMem 这个兼容DC去画图)

3.将兼容DC的内容拷贝到 窗体的DC中,完成显示:

::BitBlt(hdcDst,0,0,nWeight,nHeight,hdcNewMem,0,0,SRCCOPY);

4.善后工作:

 :: DeleteDC(

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值