vc 鼠标移动画直线

来源:互联网 发布:如何建立淘宝秒杀群 编辑:程序博客网 时间:2024/06/11 09:15
如果在鼠标移动事件中直接调用lineto是不行的,因为上次画的线不会消失,回出现一片直线。正确的做法是去掉上次画的直线。代码如下
CDC *pcdc=this->GetDC();
CPen newPen(PS_SOLID,1,RGB(255,0,0));
CPen *pOldePen;
pcdc->SelectStockObject(NULL_BRUSH);
pOldePen=pcdc->SelectObject(&newPen);
int nNew= SetROP2(pcdc->m_hDC,R2_NOTXORPEN); //屏幕色取反
pcdc->MoveTo(OriginPos);
pcdc->LineTo(TargetPos);
   SetROP2(pcdc->m_hDC,nNew);
TargetPos = point; 
pcdc->MoveTo(OriginPos);
pcdc->LineTo(TargetPos);
newPen.DeleteObject();
ReleaseDC(pcdc);
0 0