码迷,mamicode.com
首页 > 编程语言 > 详细

VC++中双缓冲技术画图

时间:2019-10-27 18:30:56      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:bsp   屏幕   lis   cto   就是   vc++   控件   bitblt   The   

 

用双缓冲,先在内存中绘制,然后拷贝到屏幕DC,这样就不会出现画出去的情况了,前段时间我也是为这个问题费了不少劲。我把我的一段代码给你看一下:

CDC   *pDC   =   m_drawbox.GetDC(); //这里的m_drawbox就是Picture控件对应的变量
CDC dcMem;  
CBitmap   bitmap;
bitmap.CreateCompatibleBitmap(pDC,300,300);  
dcMem.CreateCompatibleDC(pDC);  
CBitmap   *pOld   =   dcMem.SelectObject(&bitmap);   


dcMem.FillRect( CRect(0,0,300,300),(CBrush   *)dcMem.SelectStockObject(WHITE_BRUSH) );  
POSITION   pos   =   m_EntityList.GetHeadPosition();  
while(   pos   !=   NULL   )       m_EntityList.GetNext(pos)->Draw(&dcMem);//把链表中的图形全部绘制一编  
   
pDC->BitBlt (0,0,300,300,&dcMem,0,0,SRCCOPY);  
bitmap.DeleteObject();  
m_‍drawbox.ReleaseDC(pDC);

  

VC++中双缓冲技术画图

标签:bsp   屏幕   lis   cto   就是   vc++   控件   bitblt   The   

原文地址:https://www.cnblogs.com/arxive/p/11748232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!