1、1 m_TeeChart.GetHeader().GetText()2 .SetItem(0, COleVariant(“TeeChart 使用例”);3 m_TeeChart.GetHeader().GetText().Add(COleVariant(“追加的标题”); 4、TChart.Series:序列;Series是要显示的数据的主体,在一个图表中可以有一个或者多个序列,每一个序列可以有不同的显示类型,例如Line、Bar、Pic等等,稍后将单独描述。5、TChart.Axis:坐标轴;用来设置坐标轴的属性1 m_TeeChart.GetAxis().GetBottom().GetTi
2、tle().SetCaption(X轴的标题);2 / 设置X轴的标题,准确的说应该是设置底部轴的标题3 m_TeeChart.GetAxis().GetLeft().GetTitle().SetCaption(Y轴的标题4 / 设置左侧轴的标题5 m_TeeChart.GetAxis().GetBottom().SetMinMax(0, 100);6 /设置X轴的围 6、TChart.Legend:图例,图例就是下图中右侧的部分 下列语句可以将图列隐藏1 m_TeeChart.GetLegend().SetVisible(FALSE); /隐藏图例MFC TeeChart 用法整理二 (画二
3、维图) 画图需要添加序列,添加序列有两种方式。1、右击控件选择Properties,在TeeChart Pro Editor选项卡中单击Edit Chart,就可以在打开的对话框中编辑TeeChart控件的属性,如下图。单击Add按钮,选择第一个Line类型作为示,如何点击OK。如下图。添加完序列之后,接下来就要往序列中添加数据了。有三种方式添加数据:第一种方法只能添加一些随机数:m_TeeChart.Series(0).FillSampleValues(50); /Series函数的参数表示序列的索引值,这里只有一个Line序列,因此Line序列的索引值为0第二种方法可以添加指定的数据:fo
4、r(int i=0; i10; i+) m_TeeChart.Series(0).AddXY(i, rand()%10, NULL, RGB(255,0,255); /AddXY函数中第一个参数是X轴的数据,第二个参数是Y轴的数据,/第三个参数是X轴标记,第四个参数表示线条的颜色,rand()%10,表示生成10以的随机数此代码执行的效果如下图所示我们在第三个参数上添加一个字符串 m_TeeChart.Series(0).AddXY(i, rand()%10, 时间, RGB(255,0,255);显示结果如下:如果不想显示右侧的图例,可以用下列语句将其隐藏起来:m_TeeChart.GetL
5、egend().SetVisible(FALSE);第三种方法可以添加指定的数组:#define MAX_SIZE 20/定义数组 COleSafeArray XValues; COleSafeArray YValues; /定义的长度只要大于所创建的数组的长度即可 DWORD Xnum = MAX_SIZE; DWORD Ynum = MAX_SIZE; XValues.Create(VT_R8, 1, Xnum); YValues.Create(VT_R8, 1, Ynum); double tmp; long index=0; for(int i=0;MAX_SIZE; tmp = i;
6、 XValues.PutElement(&index, &tmp); tmp = rand()%50; YValues.PutElement(& index+; /向序列中添加数据 m_TeeChart.Series(0).AddArray(MAX_SIZE, XValues, YValues);如果标记Y轴的值,可以用下列语句:m_TeeChart.Series(0).GetMarks().SetVisible(TRUE);设置X轴与Y轴的标题:m_TeeChart.GetAxis().GetLeft().GetTitle().SetCaption(路程m_TeeChart.GetAxis(
7、).GetBottom().GetTitle().SetCaption(速度2、第二种添加序列的办法是用代码添加:m_TeeChart.AddSeries(0); /AddSeries函数的参数表示添加序列的类型 0表示添加的序列是折线图 画多条曲线的折线图m_TeeChart.GetAspect().SetView3D(FALSE); /以2D的效果显示 /添加一个Line序列 /向第一个Line序列中添加数据m_TeeChart.Series(1).FillSampleValues(50); /向第二个Line序列中添加数据m_TeeChart.Series(0).SetColor(RGB
8、(255, 0, 0); / 设置第一条曲线的颜色为红色m_TeeChart.Series(1).SetColor(RGB(0, 255, 0); /设置第二条曲线的颜色为绿色m_TeeChart.Series(0).SetTitle( /设置第一条曲线的图例标题为 时间m_TeeChart.Series(1).SetTitle( /设置第二条曲线的图例标题为 速度/ m_TeeChart.Series(0).GetMarks().SetVisible(TRUE); /显示第一条曲线的标记/ m_TeeChart.Series(1).GetMarks().SetVisible(TRUE); /
9、显示第二条曲线的标记代码运行结果如下图所示:柱状图以及其他2D图形的画法与折线图类似,只不过添加序列的类型不同,这里就不在赘述。MFC TeeChart用法整理 三(三维图)画三维图,就要添加三维类型的序列。 这里我们仍然以折线图作为例。右击控件选择Properties,在TeeChart Pro Editor选项卡中单击Edit Chart,在弹出来的对话框中单击Add,在3D选项卡中选中Point 3D类型,单击左下角的倒三角,选择 No Point风格,如下图所示。下面我们开始添加代码: m_TeeChart.GetAspect().SetView3D(TRUE); /显示3D效果20;
10、 for(int j=0; j12; j+) m_TeeChart.Series(0).GetAsPoint3D().AddXYZ(i, j*i, j, NULL, RGB(255,255,0); /向序列中添加数据,因为这里我们用到Point3D类型的序列,因此用到了GetAsPoint3D这个类数组显示Z轴: i+) m_TeeChart.GetLegend().SetVisible(FALSE); m_TeeChart.GetAxis().GetDepth().SetVisible(TRUE); /显示Z轴 m_TeeChart.GetAxis().GetDepth().GetLabel
11、s().SetVisible(TRUE); /显示Z轴上的坐标 m_TeeChart.GetAxis().GetDepth().GetLabels().SetStyle(0); /设置显示坐标的风格Z轴太窄了,我们可以调宽些:m_TeeChart.GetAspect().SetChart3DPercent(50); /参数围在0100之间画柱状图与画折线图类似,不过添加序列的时候选择Tower类型序列:5; m_TeeChart.Series(0).GetAsTower().AddXYZ(i, j*i, j, NULL, RGB(255,255,0); /向Tower序列中添加数据 m_Tee
12、Chart.GetAspect().SetChart3DPercent(50);MFC TeeChart用法整理 四(保存图片)TeeChart可以保存多钟格式的图片,bmp、jpeg、pdf、gif等,对于这些功能的定义在CExport类中声明。我们打开CExport类,看看它的成员函数有那些: void CopyToClipboardBitmap(); void CopyToClipboardMetafile(BOOL Enhanced); void SaveToBitmapFile(LPCTSTR FileName); void SaveToFile(LPCTSTR FileName);
13、 void SaveToJPEGFile(LPCTSTR FileName, BOOL Gray, long Performance, long Quality, long Width, long Height); void SaveToMetafile(LPCTSTR FileName); void SaveToMetafileEnh(LPCTSTR FileName); void ShowExport(); CString SaveChartDialog(); void ConvertTeeFileToText(LPCTSTR InputFile, LPCTSTR OutputFile);
14、 VARIANT Stream(long StreamType); CJPEGExport GetAsJPEG(); CPNGExport GetAsPNG(); CGIFExport GetAsGIF(); CBMPExport GetAsBMP(); CPCXExport GetAsPCX(); CMetafileExport GetAsMetafile(); CNativeExport GetAsNative(); CXMLExport GetAsXML(); CXLSExport GetAsXLS(); CHTMLExport GetAsHTML(); CTextExport GetA
15、sText(); void EmailFile(LPCTSTR FileName, LPCTSTR Subject); CPDFExport GetAsPDF(); CEPSExport GetAsEPS(); CSVGExport GetAsSVG(); CString GetLabelHeader(); void SetLabelHeader(LPCTSTR lpszNewValue); CXAMLExport GetAsXAML(); void SaveToXMLFile(LPCTSTR FileName, BOOL IncludeData, BOOL XMLHeader); VARIA
16、NT SaveToXMLStream(BOOL IncludeData, BOOL XMLHeader);很显然,若想保存bmp格式的图片,需要用SaveToBitmapFile函数,其参数就是图片的绝对路径。而SaveToJPEGFile函数是用来保存jpeg图片的,它有五个参数,FileName是文件存储的路径,Gray表示是否保存为黑白图像,Performance表示JPEG是生成质量优先还是速度优先,Quality是从0到100的整数,100表示生成的图片质量最好,Width和Height表示图片的像素,-1表示以TeeChart的宽和高。下面是代码示例,生成bmp和jpeg格式的图片
17、: m_TeeChart.GetExport().SaveToBitmapFile(C:1.bmp m_TeeChart.GetExport().SaveToJPEGFile(4.jpeg, 0, 0, 100, -1,-1 ); /Gray为0表示生成彩色图片那么gif、png等其他格式的图片如何保存呢?这就需要用到GetAsGIF、GetAsPNG这些类了:m_TeeChart.GetExport().GetAsGIF().SaveToFile(1.gif /保存为GIF格式m_TeeChart.GetExport().GetAsBMP().SaveToFile( /保存为BMP格式m_TeeChart.GetExport().GetAsJPEG().SaveToFile(1.jpeg /保存为jpeg格式m_TeeChart/GetExport().GetAsPDF().SaveToFile(1.pdf /保存为pdf格式
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1