VC 绘图 鼠标移动绘制直线,怎样覆盖以前的直线?

在VC中绘图时,OnLButtonUp(UINTnFlags,CPointpoint)得到m_ptPrev=point点。OnMouseMove(UINTnFlags,C... 在VC中绘图时,
OnLButtonUp(UINT nFlags, CPoint point)得到m_ptPrev=point点。
OnMouseMove(UINT nFlags, CPoint point) 得到当前m_point=point点
CClientDC dc(this);
dc.Moveto(m_ptPrev);dc.Lineto(m_point);鼠标移动时,会有大量的直线,我只想保留当前的鼠标移动直线,请问怎么实现?据说用dc.SetROP2 (R2_XORPEN);怎么用?
展开
 我来答
jeff8888
2007-01-16 · TA获得超过2.2万个赞
知道大有可为答主
回答量:1158
采纳率:100%
帮助的人:2132万
展开全部
画线时,用R2_XORPEN模式,先画一遍上次的直线,再画一次当前的直线

例如:

OnLButtonDown(UINT nFlags, CPoint point)
{
m_ptPrev = point;
m_point = point;
//....
}

OnMouseMove(UINT nFlags, CPoint point)
{
CClientDC dc(this);

int nOldDrawMode = dc.SetROP2(R2_XORPEN);

//擦除原先直线
dc.MoveTo(m_ptPrev);
dc.LineTo(m_point);

m_point = point;

//绘制新直线
dc.MoveTo(m_ptPrev);
dc.LineTo(m_point);

pDC->SetROP2(nOldDrawMode);

//其他代码略...
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式