【VC++】003绘制连续线条-扇形线条
来源:互联网 发布:电脑科学上网软件 编辑:程序博客网 时间:2024/04/27 22:53
将作业处理完了...
在前面的基础上继续前行,前面画的是直线什么的,这次做的是连续线条,就像我们写字一样;
1.绘制连续线条
我们都了解线条的原理,不清楚请看【VC++】001绘制直线http://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 defaultm_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);
效果如下:
好了,今天就这样了,后续更加精彩的给大家...
多多交流...o(∩_∩)o 初学者拜谢
3 0
- 【VC++】003绘制连续线条-扇形线条
- VC++之绘制连续线条和扇形效果的线条
- VC++之绘制线条
- VC++之绘制线条
- 绘制线条
- 绘制线条
- 绘制连续线条 改变鼠标形状
- HTML5绘图基础_03_绘制连续线条
- 线条
- 积累绘制的线条!
- 信手绘制线条刚体
- MFC绘制不规则线条
- iOS绘制线条
- DrictX 绘制线条
- MFC之绘制线条
- 椭圆线条绘制动画
- swift -- Quartz 2D -- 绘制图层:线条, 三角形, 矩形, 圆, 弧, 扇形, 虚线等
- [DFB] 移动鼠标绘制线条
- 将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)
- PHP判断数组中是否存在相同的值
- 安装MDK4.7与ADS1.2冲突的解决方法
- WinForm 文件/文件夹选择
- 金额转换为中文大写格式
- 【VC++】003绘制连续线条-扇形线条
- android项目——手机卫士_遇到的问题
- 有趣的下拉刷新
- 在win7上装vitualBox再装ubuntu12.04,安装samba服务器问题
- 运放的几个概念
- 异常控制流(ECF)机制--简介
- 异常总结
- C#多线程安全访问同一个资源
- Android-Unity