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爲字符串數組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章