注册 登录
编程论坛 VC++/MFC

求教如何使用双缓冲绘图

OP_MoMo 发布于 2013-01-28 14:50, 411 次点击
之前没用双缓冲绘图,图形一直会闪烁
3 回复
#2
yuccn2013-01-28 17:25
// 建立内存dc和bitmap

        CDC MemDc;
        CBitmap bitmap;
        MemDc.CreateCompatibleDC(NULL);
        bitmap.CreateCompatibleBitmap(&dc, rc.right - rc.left, rc.bottom - rc.top);
        CBitmap *pOldBitmap = MemDc.SelectObject(&bitmap);

        MemDc.StretchBlt(0, 0, rc.right - rc.left, rc.bottom - rc.top, &m_dcBackGroup, 0, 0, 600,388, SRCCOPY);
// 吧你的内容绘图进内存dc中去。

……………………
// 在吧内存dc的内容绘制到目标窗口中去
        dc.BitBlt(0, 0, rc.right - rc.left, rc.bottom - rc.top, &MemDc, 0, 0, SRCCOPY);
        MemDc.SelectObject(pOldBitmap);
        ReleaseDC(&dc);
        bitmap.DeleteObject();
        MemDc.DeleteDC();



上面的代码是之前做的一个作品中的一部分
双缓冲就是这样,先建立一个内存dc,吧所有的绘图都绘制到内存dc中去,在吧内存dc的内容绘图到目标dc中去




#3
yuccn2013-01-28 17:28
如果要找实例,到这个链接区下载个吧,里面有用到双缓
https://bbs.bccn.net/thread-329982-1-1.html
#4
OP_MoMo2013-01-29 08:20
回复 2楼 yuccn
问题已解决,感谢版主
1