基于Mschart的数据库图表应用编程
2008-01-19 15:14
369 查看
基于Mschart的数据库图表应用编程
2007-08-09 14:53
2007-08-09 14:53
图表由于其直观明了的特性,在实际应用中十分很广泛。我们常常希望数据能通过图表来显示其特性。例如在Delphi和C++Builder编程中,我们可以很方便地实现数据图表。MsChart(6.0或5.0版)是Windows系统中Visual studio自带的一个ACTIVEX控件,它功能强大,应用广泛,具有以下特点: [align=justify]・ 支持随机数据和随机数组,动态显示。 [/align] [align=justify]・ 支持所有主要的图表类型。 [/align] [align=justify]・ 支持三维显示。 [/align] [align=justify]MsChart具有45个属性,9个方法,49 事件,可灵活编程,可实现各类表的显示。[/align] [align=center]图1 插入MsChart 控件窗口[/align] [align=justify]1 MsChart 应用编程 [/align] [align=justify]首先插入MsChart 控件,如图1。[/align] [align=justify]1.1 坐标系属性的设置 [/align] [align=justify]a)纵轴初始化属性[/align] [align=justify]Mschart 默认支持自动标准,将自动调整,可以缺省设置。[/align] [align=justify]#include "mschart.h" //添加相关的头文件[/align] [align=justify]#include "vcplot.h"[/align] [align=justify]#include "vcaxis.h"[/align] [align=justify]#include "vcvaluescale.h"[/align] [align=justify]CMSChart m_Chart;//m_Chart 为图表变量[/align] [align=justify]VARIANT var;[/align] [align=justify]m_Chart.GetPlot().GetAxis(1,var)//获取纵轴[/align] [align=justify]//设置是否支持自动标准;控件默认支持自动标准。[/align] [align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetAuto(FALSE);[/align] [align=justify]//设置最大刻度为M;[/align] [align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMaximum(M);[/align] [align=justify]//设置最小刻度为m;[/align] [align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinimum(m);[/align] [align=justify]//设置轴的等分数D;[/align] [align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMajorDivision(D);[/align] [align=justify]//设置每等分的刻度线数n;[/align] [align=justify]m_Chart.GetPlot().GetAxis().GetValuesScale().SetMinorDivision(n);[/align] [align=justify]b)横轴初始化属性[/align] [align=justify]VARIANT var;[/align] [align=justify]m_Chart.GetPlot().GetAxis(0,var)//获取横轴[/align] [align=justify]其他属性设置跟纵轴相同。[/align] [align=justify]1.2 数据显示[/align] [align=justify]a)设置标题栏和标签[/align] [align=justify]m_Chart.SetTitleText(“标题”);//设置标题栏[/align] [align=justify]m_Chart.SetRowLabel((“第I行”);//设置第i行标签[/align] [align=justify]m_Chart.SetColumnLabel((“第j列”);//设置第j列标签[/align] [align=justify]b)行列的显示布局[/align] [align=justify]MSChart的行列显示布局有其自身的特点:下面显示是一个行列4×3,即(四行,三列)的布局示意图(图2所示)。[/align] [align=center]图2 数据显示布局示意图 [/align] [align=justify]m_Chart.SetRowCount(4); //行数为4 [/align] [align=justify]m_Chart.SetColumnCount(3); //列数为3[/align] [align=justify]c)行列操作[/align] [align=justify]// 操作行列<i, j>第i行、第j列[/align] [align=justify]m_Chart.SetRow(i);// 第i行[/align] [align=justify]m_Chart.SetColumn(j);//第j行[/align] [align=justify]m_Chart.SetRowLabel((“第i行”);//设置第i行标签[/align] [align=justify]CString str=”90.5”;[/align] [align=justify]m_Chart.SetData((LPCTSTR(str)); //设置行列<i ,j>的显示数据[/align] [align=justify]m_Chart.Refresh();//刷新视图[/align] [align=justify]d)显示方式[/align] [align=justify]获取当前的显示方式:[/align] [align=justify]long nType =m_Chart.GetChartType();[/align] [align=justify]设置显示方式:[/align] [align=justify]m_Chart.SetChartType(0);//3D(三维) 显示[/align] [align=justify]m_Chart.SetChartType(1);//2D(二维) 显示[/align] [align=justify]m_Chart.Refresh();[/align] [align=justify]其它常用组合方式为:[/align] [align=justify]m_Chart.SetChartType(1|0) //2D柱(条)形,[/align] [align=justify]m_Chart.SetChartType(0|0) //3D柱(条)形[/align] [align=justify]m_Chart.SetChartType(1|2) //2D线条型[/align] [align=justify]m_Chart.SetChartType(0|2) //3D线条型[/align] [align=justify]m_Chart.SetChartType(1|4) //2D区域型[/align] [align=justify]m_Chart.SetChartType(0|4) //3D区域型[/align] [align=justify]m_Chart.SetChartType(1|6) //2D阶梯型[/align] [align=justify]m_Chart.SetChartType(0|6) //3D阶梯型[/align] [align=justify]m_Chart.SetChartType(1|8) //2D复(混)合型[/align] [align=justify]m_Chart.SetChartType(0|8) //3D复(混)合型[/align] [align=justify]另外,在2D方式中,还有两类:饼型和XY型[/align] [align=justify]m_Chart.SetChartType(14) //2D 饼型[/align] [align=justify]m_Chart.SetChartType(16) //2DXY型[/align] [align=justify]e)其他[/align] [align=justify]其他属性,比如设置字体,颜色,对齐方式等。[/align] [align=center]图3 数据控件界面示意图 [/align] |
相关文章推荐
- 艾伟_转载:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写
- ASP.NET应用下基于SessionState的“状态编程框架”解决方案
- 【转】ASP.NET应用下基于SessionState的“状态编程框架”解决方案
- Android 环境下开发基于Firebird数据库应用
- 项目工程的工期的估算——基于数据库应用
- C#学习- 通过基于接口的编程来实现数据库的切换
- 基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计
- 多层数据库应用基于Delphi DataSnap方法调用的实现(四)BLOB字段的读写
- 基于ACE应用编程框架——线程池
- 在云平台上基于Go语言+Google图表API提供二维码生成应用
- 基于 OAuth 安全协议的 Java 应用编程
- 【MFC-9】VS2010/MFC基于对话框的SQlite3数据库编程
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
- WinCE系统下基于DirectShow的摄像头应用编程
- 基于JDBC的数据库连接池技术研究与应用
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
- 基于JDBC的数据库连接池技术研究与应用
- Data控件在vb数据库编程中的应用
- 网络编程应用:基于UDP协议【实现文件下载】--练习
- 转:基于ACE应用编程框架——线程池