VC编程之[VC++]003绘制连续线条-扇形线条
小标 2018-08-14 来源 : 阅读 1236 评论 0

摘要:本文主要向大家介绍了VC编程之[VC++]003绘制连续线条-扇形线条,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之[VC++]003绘制连续线条-扇形线条,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

在前面的基础上继续前行,前面画的是直线什么的,这次做的是连续线条,就像我们写字一样;

1.绘制连续线条

我们都了解线条的原理,不清楚请看【VC++】001绘制直线//blog.csdn.net/xjm199/article/details/17486277

view依然以view结尾的,即C工程名View。。。

这次,我们在view类中添加一个BOOL型的私有成员变量m_bDraw,初始值是false;

当我们鼠标左键按下去后时,为true,当左键放开之后,为false,表示线条绘制结束。

部分定义代码:

//添加变量private: BOOL m_bDraw;
//构造函数时初始化m_bDraw = false;
//在OnLButtonDown中m_bDraw = true;
//在OnLButtonUp中m_bDraw = false;

重点是添加事件OnMouseMove,这样,就会绘出鼠标移动的轨迹了,即线条

CClientDC dc(this); //CPen pen(PS_SOLID,1,RGB(255,0,0)); //CPen *pOldPen=dc.SelectObject(&pen); if(m_bDraw==TRUE) { //dc.SetROP2(R2_BLACK); dc.MoveTo(m_ptOrigin); dc.LineTo(point); m_ptOrigin=point; } //dc.SelectObject(pOldPen);

绘出效果:

如果想给线条加一些效果的话,比如给线条加上颜色,即之前所用CPen类,把上述代码的注释部分解开即可:

 

 

2.绘制扇形线条

我们在绘制连续线条的基础上,注释掉OnMouseMove里面的m_ptOrigin=point;//修改线条的起点的

CClientDC dc(this); CPen pen(PS_SOLID,1,RGB(255,0,0)); CPen *pOldPen=dc.SelectObject(&pen); if(m_bDraw==TRUE) { dc.MoveTo(m_ptOrigin); dc.LineTo(point); //m_ptOrigin=point; } dc.SelectObject(pOldPen);


就可以画出这么神奇的图形了...

m_ptOrigin是起始点,如果不变,就会以一个点不断画线;

我们可以看出上述的扇形的边缘并没有封口;

我们可以通过在View中新建CPoint类型的私有成员变量m_ptOld,并在OnLButtonDown中初始化;

private: CPoint m_ptOld; BOOL m_bDraw; CPoint m_ptOrigin;
void CDrawStraightView::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: Add your message handler code here and/or call default m_ptOld = point; m_bDraw = true; m_ptOrigin = point; CView::OnLButtonDown(nFlags, point);}


最后在OnMouseMove添加代码(//可以将之前的注释掉,或者在基础上增加dc.LineTo(m_ptOld)和m_ptOld=point;):

CClientDC dc(this); CPen pen(PS_SOLID,1,RGB(255,0,0)); CPen *pOldPen=dc.SelectObject(&pen); if(m_bDraw==TRUE) { //dc.SetROP2(R2_BLACK); dc.MoveTo(m_ptOrigin); dc.LineTo(point); dc.LineTo(m_ptOld); //修改线段起点 //m_ptOrigin=point; m_ptOld=point; } dc.SelectObject(pOldPen);


效果如下:

 

好了,今天就这样了,后续更加精彩的给大家...

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved