我在利用 SetROP2时,这么写不能得到想要的效果,它会产生路径,但的确是有部分线
被重画掩盖了。麻烦大家看看!
鼠标移动响应:
if (pDrawObj->m_ptStart.x != -1 )
{
oldPen = dc.SetROP2(R2_NOTXORPEN);
pDrawObj->DrawSelf(dc);
pDrawObj->SetEndPoint(point);
pDrawObj->DrawSelf(dc);
dc.SetROP2 (oldPen); //还原
}
绘画:
```void CDrawShape::DrawSelf(CClientDC pDC)
{
CPen NewPen;
HPEN op;
NewPen.CreatePen(PS_SOLID, 2, RGB(0,0,0));
op = pDC.SelectPen(NewPen.m_hPen);
switch (m_ShapeType)
{
case 1:
pDC.MoveTo(m_ptStart.x,m_ptStart.y,NULL);
pDC.LineTo(m_ptEnd.x,m_ptEnd.y);
break;
case 2:
pDC.Ellipse(m_ptStart.x,m_ptStart.y,m_ptEnd.x,m_ptEnd.y);
break;
}
pDC.SelectPen(op);
}
![
图片说明](https://img-ask.csdn.net/upload/201712/28/1514465617_88349.png)