WEB开发网
开发学院软件开发VC 构建仪表、图表控件的绘制框架 阅读

构建仪表、图表控件的绘制框架

 2007-03-17 21:59:17 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 开发环境: VS2003 + Windows XP SP2测试环境: Windows XP SP2Demo截图 编写图形相关的控件需要完成两部分:1 绘制;2 与窗口类(泛指)集成使之成为控件,本文重点在于“绘制”部分,构建仪表、图表控件的绘制框架,提出一个较灵

本文示例源代码或素材下载

开发环境: VS2003 + Windows XP SP2

测试环境: Windows XP SP2

Demo截图

编写图形相关的控件需要完成两部分:1 绘制;2 与窗口类(泛指)集成使之成为控件。本文重点在于“绘制”部分,提出一个较灵活的框架。用VC的GDI+实现框架,并在Demo中简单封装成圆表和直表控件。图一是要实现的目标(圆表、直表等仪表,指示灯,图表,旋钮,滑块等),由这些目标,经需求分析后,设计出框架。

图一

框架的建立

“如果说我比别人看得更远些,那是因为我站在了巨人的肩上”。.Net上开源图表控件比较多,在这里我们分析一下MS Graph Demo。图二 是其绘制Pie图表的类图。

图二 MS Graph Demo绘制Pie图表的结构

PieSlice表示Pie中的单个扇形,_value用来计算百分比,_color是此扇形的填充颜色。

PieSliceCollection是PieSlice集合。

PieGraph类内置一个PieSliceCollection对象,类中其它的数据是描述Pie整体的数据(宽高,边框宽度,背景颜色……)。

PieGraphRenderer类通过 DrawGraph函数绘制Pie图,类内置一个PieGraph对象。

此结构有诸如数据结构和算法的分离等的优点,但也有它的局限性。1 它的框架是建立在功能分类上的,如,Pie图、Bar图。PieSlice中不仅有功能数据_value还有外观数据_color。假如不再填充纯色,而是填充图像,那么就必须修改PieSlice,增加_image:Image属性; PieGraphRenderer也需相应的修改。假设将上述修改扩展到Pie图表以外的其它类型的图表,如:Bar图表、A图表、B图表,那么BarSlice、ASlice、BSlice,及三者相应的Renderer类也必须修改,工作量多且重复。2 在应用过程中,当需要把Pie图对象转换成Bar图对象时,MS Graph Demo的现有框架便不能实现。

1 2 3 4  下一页

Tags:构建 仪表 图表

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接