小标
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
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号