VC中使用TeeChart控件

在头文件中要加上
#include "tchart.h"
#include "series.h"
#include "valuelist.h"
#include "axes.h"
#include "axis.h"
#include "pen.h"
#include "axislabels.h"
#include "teefont.h"
#include "axistitle.h"
#include "aspect.h"
#include "fastlineseries.h"
#include "titles.h"
#include "fastlineseries.h"
#include "panel.h"
#include "legend.h"
#include "tools.h"
#include "toollist.h"
#include "annotationtool.h"
#include "page.h"
TeeChart类的属性和方法

        TeeChart的主类是TChartTChart中使用了众多的属性方法和事件,随着版本的升级将越来越丰富。这使得TChart具有非常强大的功能。本文仅简单地介绍其中一些重要类的属性和方法。

TChart.Height:图表的高度(像素);

TChart.Width:图表的宽度(像素);

TChart.Header:图表的题头(Ititles)

TChart.Series:序列(Series类的数组)

TChart.Axes:坐标轴(Iaxes)

TChart.Legend:图例(Legend)

TChart.Panel:面板(Ipanel类);

TChart.Canvas:画布(Canvas类)。

        Series是要显示的数据的主体。在一个图表中可以有一个或多个序列,每个序列可以有不同的显示类型,如LineBarPie等等。

        Axes控制图表坐标轴的属性,在缺省的情况下,坐标轴可以自动地根据不同的数据设置好标度范围和间隔,当然也可以手工调整。

        Legend控制图表的图例显示。Legend是图表中的一个长方形的用来显示图例标注的区域。可以标注Series的名称或者Series中的项目和数值。

        Panel可以设置图表的背景。可以使用渐变的颜色或者图像文件作为整个图表的背景

        Canvas可以让设计者绘制自己的图形。使用方法和Delphi中的Canvas一样。有TextOut LineToArc等各种画图的方法可以调用。

        TChart的一些属性实际上是其他类的变量,这些类又具有自己的属性和方法。如Ititles类又具有TextColorFont等属性,我们可以用这些属性来设置题头的文本、颜色和字体。

        TeeChart和其他的图表控件相比,有一个非常重要的特点是TeeChart可以把图表保存为一个JPEG格式的图形文件。调用格式如下:

        TChart.Export.SaveToJPEGFile (FileName,Gray,Performance,Quality,Width,Height)

    其中FileNameJPEG文件的保存路径和文件名,路径应该是操作系统中的绝对路径,而不是IIS中的相对路径,IIS对相应的保存目录应该具有写权限。Gray指明是否保存为黑白图像。Performance指明JPEG是生成质量优先还是速度优先。Quality是一个0100的整数,100JPEG质量最好,但文件最大;Quality越小则生成的文件越小,但图像质量也随之下降。

       

设定信息如下(CHART控件名称为:m_Chart

   //清空chart -----------------------------------

       m_Chart.ClearChart();

      m_Chart.RemoveAllSeries();

//CHART框架

       m_Chart.GetFrame().SetVisible(true);

       m_Chart.GetFrame().SetColor(RGB(255,255,255));

/*根据自定义背景色来设置,我这里设定背景色为白色,所以也设定为边框为白色,这样就看不到的,如果不加入,该颜色就默认为黑色的

//重要,否则出现边框为默认黑色的.如果要改变背景颜色,那么对应的此处颜色要进行更改的

*/

       m_Chart.GetPanel().SetColor(RGB(255,255,255));

       m_Chart.GetLegend().SetVisible(false);

 

// 添加3条曲线 ---------------------------------

m_Chart.AddSeries(0);

m_Chart.AddSeries(0);

m_Chart.AddSeries(0);

 

// 设置3条曲线的坐标轴 -------------------------

m_Chart.Series(0).SetVerticalAxis(0);

m_Chart.Series(1).SetVerticalAxis(0);

m_Chart.Series(2).SetVerticalAxis(0);

m_Chart.Series(0).SetHorizontalAxis(1);

m_Chart.Series(1).SetHorizontalAxis(1);

m_Chart.Series(2).SetHorizontalAxis(1);

m_Chart.Series(0).GetXValues().SetDateTime(true);

m_Chart.Series(1).GetXValues().SetDateTime(true);

m_Chart.Series(2).GetXValues().SetDateTime(true);

 

// 设置3条曲线的颜色 ---------------------------

m_Chart.Series(0).SetColor(RGB(255,0,0));

m_Chart.Series(1).SetColor(RGB(0,255,0));

m_Chart.Series(2).SetColor(RGB(0,0,255));

 

// 设置3条曲线的名称

m_Chart.Series(0).SetName("ZongFengGuan");

m_Chart.Series(1).SetName("LieCheGuan");

m_Chart.Series(2).SetName("ZhiDongGang");

//-----设定最大最小值

m_Chart.GetAxis().GetBottom().SetMinMax(minStar,minEnd);

// minStar,minEnd要求自己去添加,这里用的是时间的范围

//一般为起始时间和结束时间的范围的

// 连接数据库 ----------------------------------

CXDatabasedb;

_RecordsetPtrpRs;

CStringstrSql;

if(!db.Connect("ACCESS","",GetRootDir()+"//db1.mdb","",""))

{

AfxMessageBox("连接数据库失败!");

return;

}

 

strSql.Format("select * from %s where RunTime>=#%s# and RunTime<=#%s#",m_strTableName,strMinTime,strMaxTime);

pRs = db.ExecuteSql(strSql);

while(pRs!=NULL && !pRs->adoEOF)

{

// 添加数据点 ------------------------------

double dTime = oletime2chttime(COleDateTime(pRs->GetCollect("RunTime")));

double dZFGPress = var2dbl(pRs->GetCollect("ZFGPress"));

double dLCGPress = var2dbl(pRs->GetCollect("LCGPress"));

double dZDGPress = var2dbl(pRs->GetCollect("ZDGPress"));

 

m_Chart.Series(0).AddXY(dTime,dZFGPress,NULL,RGB(255,0,0));

m_Chart.Series(1).AddXY(dTime,dLCGPress,NULL,RGB(0,255,0));

m_Chart.Series(2).AddXY(dTime,dZDGPress,NULL,RGB(0,0,255));

 

pRs->MoveNext();

}

 

// 断开数据库连接 ------------------------------

db.Disconnect();

  • 0
    点赞
  • 2
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值