彩票走势图

TeeChart控件在VC环境下的使用心得

转帖|其它|编辑:郝浩|2012-10-23 10:26:44.000|阅读 1071 次

概述:以前在网上看过很多TeeChart在VC环境下的使用心得,今天我也来总结一下TeeChart类的属性和方法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

以前在网上看过很多TeeChart在VC环境下的使用心得,今天我也来总结一下TeeChart类的属性和方法。

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

  • TChart.Height:图表的高度(像素);
  • TChart.Width:图表的宽度(像素);
  • TChart.Header:图表的题头(Ititles类);
  • TChart.Series:序列(Series类的数组);
  • TChart.Axes:坐标轴(Iaxes类);
  • TChart.Legend:图例(Legend类);
  • TChart.Panel:面板(Ipanel类);
  • TChart.Canvas:画布(Canvas类)。

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

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

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

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

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

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

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

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

其中FileName是JPEG文件的保存路径和文件名,路径应该是操作系统中的绝对路径,而不是IIS中的相对路径,IIS对相应的保存目录应该具有写权限。Gray指明是否保存为黑白图像。Performance指明JPEG是生成质量优先还是速度优先。Quality是一个0到100的整数,100时JPEG质量最好,但文件最大;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();

}

后记:当图与表格同时显示时,加入一个TeeChartGrid控件并关联一个变量,下面语句使Grid与Teechart关联起来:

m_ctrlChartGrid.SetChartLink(m_ctrlChart.GetChartLink());

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:新浪博客

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP