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(Parameter)

 ::ReleaseDC(Parameter);
::DeleteObject(Parameter);

你可能感兴趣的:(windows 双缓冲绘图)