请教MFC 画图闪屏的问题
网上搜索了下,说用双缓冲避免。。但是实验了下好像不管用。。我这边可以调节画笔大小。当画笔为1时,确实不再闪屏。。但是当画笔增大时候,且划线较多时候还是会闪屏、、请问怎么规避呢??
以下是双缓冲的源码:
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect); //获得窗口客户区
// 创建内存缓存DC
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CBitmap bufferMemBitmap;
bufferMemBitmap.CreateCompatibleBitmap(&dc, rect.Width(),rect.Height());
memDC.SelectObject(&bufferMemBitmap);
CBrush whiteBrush;
whiteBrush.CreateSolidBrush(RGB(255, 255, 255));
memDC.FillRect(CRect(0, 0, rect.Width(), rect.Height()),&whiteBrush);
CPen my_pen;
my_pen.CreatePen(PS_SOLID,m_PenWidth,m_Color); //m_PenWidth调节画笔大小
CPen *oldPen = memDC.SelectObject(&my_pen);
//画图过程省略
// 将内存缓冲DC拷贝至当前DC
dc.BitBlt(rect.left, rect.top, rect.Width(), rect.Height(),&memDC, 0, 0, SRCCOPY);
bufferMemBitmap.DeleteObject();
memDC.DeleteDC();