VC6.0中画图用的chart控件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//设置背景颜色 m_Chart.GetBackdrop().GetFill().SetStyle(1); m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255);
//设置数据系列的颜色:如果是曲线图则对应每条曲线的颜色 for (int i = 1; i <= m_Chart.GetColumnCount(); i++ ) {//这里设置为随机颜色 m_Chart.GetPlot().GetSeriesCollection().GetItem(i).GetPen().GetVtColor().Set(rand() * 230 / RAND_MAX, rand() * 230 / RAND_MAX, rand() * 230 / RAND_MAX); m_Chart.GetPlot().GetSeriesCollection().GetItem(i).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } //设置 x 轴的其他属性 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(FALSE); // 不自动标注 X 轴刻度 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线
VC6.0 中画图用的 chart 控件---Microsoft Chart Control
C++ 2010-09-09 17:21:17 阅读 221 评论 0 例子程序效果: 字号:大中小 订阅
第一步: 建立一个对话框程序,在对话框上面点击鼠标右键,点“insert ActiveX control”弹出对话框再选择 microsoft chart
}
void CChartControl2Dlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default int nYValue = rand()%100; nCount++; CString str; int i; i = nCount; str.Format("%d", i); int inPos = m_Chart.GetRowCount() + 1; m_Chart.GetDataGrid().InsertRows(inPos, 1); m_Chart.SetRow(inPos); m_Chart.SetRowLabel(str);//sLabel??CString?? m_Chart.GetDataGrid().SetData(inPos, 1, nYValue, 0); if (nCount > 30) { m_Chart.GetDataGrid().DeleteRows(inPos - 30, 1); } m_Chart.Refresh(); //每产生 30 个数据便停止计时并启用 start 按钮,再点击一下即可以继续产生下 30 个数据 if (nCount % 30 == 0) { KillTimer(100);
#include "vcseriescollection.h" #include "vcseries.h" #include "vcpen.h" #i#include "vccategoryscale.h" #include "vcaxistitle.h" #include "vcdatagrid.h" #include "vcdatapoint.h" #include "vcdatapoints.h" #include "vcdatapointlabel.h" ***************************************************************************************
control version 6.0,在对话框上面显示一个很小的图片,用鼠标拖大就行了。 注意:如果没有按照此控件,那你就从其他人电脑上面拷贝一个 mschart20.ocx 文件到 windows\system32\下面
在 cmd 命令行里面注册这个控件 regsvr32 mschart20.ocx
第三步:0.1s 定时器
void CChartControl2Dlg::OnButtonStartdraw() { // TODO: Add your control notification handler code here SetTimer(100, 100, NULL);//1/10 second GetDlgItem(IDC_BUTTON_STARTDRAW)->EnableWindow(FALSE);//
//不要与 x 轴垂直的表格线 m_Chart.GetPlot().GetAxis(0,var).GetAxisGrid().GetMajorPen().SetStyle(0);// no x grids //隐藏第二 y 轴,即右边的 y 轴 m_Chart.GetPlot().GetAxis(2,var).GetAxisScale().SetHide(TRUE); //刷新控件 m_Chart.Refresh(); } ***************************************************************************************************************************** 注意:包含头如下文件 *************************************************************************************** #include "vcbackdrop.h" #include "vcfill.h" #include "vcbrush.h" #include "vcaxis.h" #include "vcaxisgrid.h" #include "vcaxisscale.h" #include "vcplot.h" #include "vcvaluescale.h"
//不自动标注 y 轴 m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(FALSE); m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMaximum(100); // y 轴最大刻度为 100 m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMinimum(0); // y 轴最小刻度为 0 m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMajorDivision(5); // 将 y 轴刻度 5 等分 m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMinorDivision(1); // 每刻度一个刻度线 // m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().SetText("YourTitle"); // y 的轴名称
GetDlgItem(IDC_BUTTON_STARTDRAW)->EnableWindow(TRUE);// } CDialog::OnTimer(nIDEvent); }
第二步:初始化 Chart
void RealChartDlg::InitChart() { //设置标题 m_Chart.SetTitleText(LPCTSTR("实时曲线图"));//Title 为 CString 类型 //设置栈模式 m_Chart.SetStacking(FALSE); //设置行数及列数 m_Chart.SetRowCount(1);//iRowCount 和 iColumnCount 为 int 型 m_Chart.SetColumnCount(1); m_Chart.SetRow(1); m_Chart.SetRowLabel(""); m_Chart.GetDataGrid().SetData(1, 1, 0, 0); //设置 x 轴及 y 轴的标题。xTitle 和 yTitle 为 CString 型 VARIANT var; m_Chart.GetPlot().GetAxis(0,var).GetAxisTitle().SetText("Time"); //x 轴 m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().SetText("DataValue"); //y 轴 //设置控件类型 m_Chart.SetChartType(3);//3:曲线型;1:条形;14:饼图
相关文档
最新文档