首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

,画线的有关问题

2013-09-08 
求助,画线的问题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

热点排行