,画线的有关问题
求助,画线的问题m_clr ^ GetSysColor(3D_FACE) pDC-SetROP2(R2_XORPEN)pDC-MoveTo(m_ptOld) // 这次
求助,画线的问题
m_clr ^= GetSysColor(3D_FACE);
pDC->SetROP2(R2_XORPEN);
pDC->MoveTo(m_ptOld); // 这次绘图是覆盖在背景色上的画笔色?
pDC->LineTo(m_ptNew);
m_ptNew = Point;
pDC->MoveTo(m_ptOld);
pDC->LineTo(m_ptNew);// 这次绘图擦除上一次画的么,为什么
可以是这样?原理是啥
MFC Draw
[解决办法]Xor 异或,第一次 画有效, 再 画一次 就把 上次 画的 擦除了。
你这样画线, 对一根线, 没问题。 如果 是 2根线 ,那么 2根线的 交点 就不对了。
[解决办法]绘图模式R2_XORPEN 的颜色是画笔颜色值与背景颜色异或操作得到的,由于是在原位置重画这条直线,相当于是对原位置的直线取反操作,又把它画成背景色了,即实现擦除功能!(最终像素=钢笔"异或"屏幕像素为单位)。
http://msdn.microsoft.com/zh-cn/library/vstudio/99ax95h9.aspx