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(