在画直线时,当鼠标down 然后 move 时,move的过程中产生了临时直线并且显示了出来。看起来就像阴影一样。参考了别人的代码后,书写如下。可是编译他的代码后这种问题消失了,注释掉他的如下两行同样也产生临时线。可我无论是添加这两行代码还是不添加都有临时线。奇怪~~顺便说下以下代码是加在动作mouse move和Lbutton up里的。dc.MoveTo( m_ptStart ); //这两行代码擦除从起点(鼠标按下点)到
dc.LineTo( m_ptOld ); //上次鼠标移动到的位置之间的临时线
dc.SelectObject(&pen);
dc.MoveTo( m_ptStart ); //这两行代码从起点到鼠标当前位置画线
dc.LineTo( point ); // 请高人指点如何去临时线
dc.LineTo( m_ptOld ); //上次鼠标移动到的位置之间的临时线
dc.SelectObject(&pen);
dc.MoveTo( m_ptStart ); //这两行代码从起点到鼠标当前位置画线
dc.LineTo( point ); // 请高人指点如何去临时线
你是不是在WM_MOUSEMOVE消息响应函数中调用?还有一种低效的去除临时线的方法。InvalidateRect
void OnMouseMove( UINT nFlags,CPoint point )
{
if(nFlags ==MK_LBUTTON)
{
//绘线代码
}
}
记着画正常线时设置回原来的模式。
画一次显示,再画一次擦除