本文主要是介绍MSCHRT20.OCX使用详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一步:把MSCHRT20.OCX(下载)和msdatasrc.dll(搜索下系统里有)放在一起,比如D盘根目录下,执行注册控件“regsvr32 D:/MSCHRT20.OCX”。
第二步:成功后,在VC++下“工程->增加到工程->Components and Controls”,打开了文件通用对话框,选择“Registered ActiveX Controls->Microsoft Chart Control, version 6.0 (OLEDB)”,控件插入后就可以开始使用了。
第三步:代码示例
1、先给控件赋予变量m_Chart
2、加入头文件(可以继续加,少什么加什么)
#include "mschart.h "
#include "vcplot.h "
#include "vcseriescollection.h "
#include "vcseries.h "
#include "vcdatapoints.h "
#include "vcdatapoint.h "
#include "vcdatapointlabel.h "
#include "vcfont.h "
#include "vcaxis.h "
#include "VcValueScale.h"
#include "VcBackdrop.h"
#include "VcFill.h"
#include "VcBrush.h"
#include "VcColor.h"
#include "VcPen.h"
#include "VcCategoryScale.h"
#include "VcAxisTitle.h"
#include "VcDataGrid.h"
3、初始化图表:
m_Chart.GetPlot().GetAxis(1,chart_var).GetValueScale().SetMajorDivision(100);//y轴刻度10等分
m_Chart.GetPlot().GetAxis(1,chart_var).GetValueScale().SetMinorDivision(0.1);//每刻度一个刻度线
m_Chart.SetColumnCount(2); //2个项,2条曲线
m_Chart.SetTitleText("用户消费情况折线图统计");//设置标题栏
m_Chart.SetColumnLabel("本地话费");//设置第j列标签
m_Chart.SetColumn(2);
m_Chart.SetColumnLabel("长途话费");
m_Chart.GetPlot().GetAxis(0,chart_var).GetAxisTitle().SetText("消费日期"); //X轴名称
m_Chart.SetShowLegend(TRUE);
m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().GetVtColor().Set(0, 0, 255);//线色,蓝色曲线
m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(1);//线宽
m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().GetVtColor().Set(255, 0, 0);//红色
m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(1);//线宽
m_Chart.GetBackdrop().GetFill().SetStyle(1);
m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255);//白色背景
//初始化曲线值
for(int beginrow=1; beginrow<=5; ++beginrow){
m_Chart.GetDataGrid().SetData(beginrow, 1, 0, 0);//设置第一条曲线的第row个点
m_Chart.GetDataGrid().SetData(beginrow, 2, 0, 0);//设置第二条曲线的第row个点
}
4、开始画图:
int items = m_list_cost.GetItemCount();
m_Chart.SetRowCount(items);
for (int j=0; j<items; j++) //画图
{
m_Chart.GetDataGrid().SetData(j+1, 1, data_local[j], 0);//设置第一条曲线的第j+1个点
m_Chart.GetDataGrid().SetData(j+1, 2, data_long[j], 0);//设置第一条曲线的第j+1个点
m_Chart.SetRow(j+1);
m_Chart.SetRowLabel(data_time[j]);//设置第i行标签
}
m_Chart.Refresh();
其中data_local和data_long为两条曲线采样点的整数值。datatime为字符串数组。
这篇关于MSCHRT20.OCX使用详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!