关于使用橡皮筋技术绘图闪烁的问题
之前在项目中用到,后来解决了,MARK一下
总体来说就是橡皮筋绘图和双缓冲绘图结合使用
mousemove中代码:
CRect rc;
GetClientRect(rc);
CDC memDC;
memDC.CreateCompatibleDC(NULL);
CBitmap memBitMap;
memBitMap.CreateCompatibleBitmap(&dc, rc.Width(), rc.Height());
memDC.SelectObject(&memBitMap);
int nSize = theApp.m_nSize;
COLORREF color = theApp.m_GraColor;
CPen pen(PS_SOLID, nSize, color); //设置画笔(线型、线宽、线颜色)
CPen *pOldPen = memDC.SelectObject(&pen); //将画笔选到设备描述表中
memDC.BitBlt(0, 0, rc.Width(), rc.Height(), &dc, 0, 0, SRCCOPY);
;//空画刷
CBrush* pOldBrush = (CBrush*)memDC.SelectStockObject(NULL_BRUSH);
memDC.SetROP2(R2_NOTXORPEN);
memDC.Rectangle(CRect(m_ptOrigin, m_ptOld));
memDC.Rectangle(CRect(m_ptOrigin, point));
dc.BitBlt(0, 0, rc.Width(), rc.Height(), &memDC, 0, 0, SRCCOPY);