标签: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);
标签:bsp 屏幕 lis cto 就是 vc++ 控件 bitblt The
原文地址:https://www.cnblogs.com/arxive/p/11748232.html