如何不让画出的线条成扇形?
终于学校放寒假了,先在这里提前祝大家新年快乐!下面说正事!
想实现跟一些画图软件中的 能够按下并让鼠标移动的画直线功能!
但试了下面两种办法 都不行!
两种结果如图所示:
1.刚开始用了dc.SetROP2(R2_NOTXORPEN);这个函数设置绘图模式!但结果不行!
2.后来自己想了个办法就是 将先前画过的那些直线的点保存起来然后再下一次画图时,将先前的直线重新设置为背景色重画一遍!
在OnMouseMove中添加的代码实现如下:
程序代码:
pen->DeleteObject(); //先删除 之前的画笔 pen->CreatePen(PS_SOLID,Width,dc.GetBkColor()); //重新创建画笔,并设置为背景色 dc.SelectObject(pen); //重新载入画笔 dc.MoveTo(LstLinePtBeg); // dc.LineTo(LstLinePtEnd); //用背景色重画上次保存的线条 以实现隐藏的功能! pen->DeleteObject(); //删除画笔 pen->CreatePen(PS_SOLID,Width,RGB(200,0,0)); //创建画笔 自定义的颜色画 dc.SelectObject(pen); //再次载入画笔 dc.MoveTo(ptBeg); //ptBeg是按下的 点! dc.LineTo(point); //画到point是移动的点 LstLinePtBeg=ptBeg; //保存好当前的 点 LstLinePtEnd=point; //保存好当前的 点