怎么在鼠标移动中画线(像画图程序中的一样)

如何在鼠标移动中画线(像画图程序中的一样)
我在OnMouseMove()添加:
CClientDC   dc(this);
CPen   pen(PS_SOLID,5,RGB(255,0,0));
CPen   *pOldPen=dc.SelectObject(&pen);
if(m_bDraw==TRUE)
{
dc.SetROP2(R2_XORPEN);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SetROP2(R2_XORPEN);
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptDraw);
m_ptDraw=point;
}
dc.SelectObject(pOldPen);
这样产生了两个问题:
1.由于先异或了说一很难配出我要的颜色,特别时当背景色不是纯色,例如背景为一幅图片时,我所要绘制的线颜色就不能保持我在画笔中设置的颜色。
2.两线相交处出现背景颜色。
另外用刷新客户区的方法时,画线会有闪烁现象……

------解决方案--------------------
在拖动时这个问题不好解决,我也找了很久,我想如果用PS中的图层技术应该可以实现
不过你可以在拖动后记录起点终点,在ONDRAW中重绘一下
至于闪烁就好办了,DOUBLE BUFFER
------解决方案--------------------
拖动时,用MouseMove可以不?
------解决方案--------------------
你在BAIDU上搜索下DrawClient这个程序,可以解决你的问题
------解决方案--------------------
双缓充 加 局部刷新技术 可以非常好的解决你的问题。
------解决方案--------------------
别用什么橡皮筋了,直接一个后备缓冲就OK了,创建两个DC一个用作前景一个用做背景,所有的绘制都完成之后再Blt到用户窗口的DC上去,可以有效避免闪烁。