DrawTool学习01

刚入职不久,公司原有一个根据模板自动生成Word的程序,也可通过本程序通过编程创建Word,框架已经建好,只是一些功能还没有完善。算是对能力的一个考验吧,我接到了这个任务,经过三个月星期的努力,交差了。 最近两周一直在学习GDI+, 图形程序设计。用的是Mahesh Chand的教材,韩江等译。 昨天总监看我把书看的差不多了,就给了我一个网址 http://www.codeproject.com/KB/cs/DrawToolsRedux.aspx 一个画图工具,外国人搞的,让我看看人家的设计结构。并且告诉我关于存储等方面的功能不用看,只看画图那部分就OK了。 今天算是看这个程序的第二天了吧。关于画图方面的功能熟悉的差不多了。主要是从设计框架上理解。本人对这个比较感兴趣,想往架构方面发展。 以下是我对DrawTool画图部分的阶段性理解. 程序当中的MainForm就不用管了,无非就是提供给用户操作接口。获取各种所需参数而已,画图部分主要从DrawArea控件开始。我们可以把它通俗的理解成画布。 画图模块介绍: DrawArea(画布)中可以包含多个Layer(层),每个Layer上可以包含多个DrawObject(图形). 出于对多个Layer的管理,作者新建一个Layers,用来对多个层的可见性,活跃性等等的管理。 同样,作者为了对多个DrawObject进行管理,新建了GraphicsList类,用来对多个DrawObject对象进行管理。 通过上面的说明,清楚了画布,层,图形之间的存在形式。 下面,我们考虑一下,怎么样绘出图形来呢。 用过画图工具的都知道,当我画一个图形时,首先要选择绘画对象,比如要画一个矩形。 绘画过程,可以分成三步:第一步,按下鼠标左键。第二步,拖动鼠标。第三步,松下鼠标,即可完成图形绘制。 ToolObject类是用来绘制图形的工具类,实质上当中正是包含了,上面所述的绘制过程。 OnMouseDown OnMouseMove OnMouseDown 三个步骤。 具体的图形绘制类,要继承自这个类。比如ToolRectangle就要继承自这个类。 DrawArea中包含一个ToolOject集合,当用户触发 OnMouseDown OnMouseMove OnMouseDown 时,通过调用ToolOject中相应的方法(OnMouseDown,OnMouseMove,OnMouseDown),实现图形的绘制。

转载于:https://www.cnblogs.com/clhblog/archive/2011/08/04/2127452.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值