MFC画图的强大工具MSChart的使用
更新时间:2023-11-14 01:00:01 阅读量: 教育文库 文档下载
- mfc 画图推荐度:
- 相关推荐
MFC画图的强大工具MSChart的使用
图表由于其直观明了的特性,在实际应用中十分很广泛。我们常常希望数据能通过图表来显示其特性。例如在Delphi和C++Builder编程中,我们可以很方便地实现数据图表。MsChart(6.0或5.0版)是Windows系统中Visual studio自带的一个ACTIVEX控件,它功能强大,应用广泛,具有以下特点: · 支持随机数据和随机数组,动态显示。 · 支持所有主要的图表类型。 · 支持三维显示。
下面是一个实例:
程序运行效果图
一、在工程中加入 mschart
菜单->Project->Add To Project->Components and Controls->Registered ActiveX Controls->Microsoft Chart Control, version 6.0 (OLEDB)
二、在CDemoView中加入:CMSChart m_Chart 三、创建及设置m_Chart
3.1 在 CDemoView::OnCreate 中创建CMSChart
1.// CDemoView::OnCreate() 2.CRect rc;
3.GetClientRect(&rc);
4.if(!m_Chart.Create(\ 5.return -1;
3.2 在 CDemoView::OnSize 中调整 m_Chart 的大小,使之能随窗口大小变化而变化
1.// CDemoView::OnSize
2.if( m_Chart.GetSafeHwnd() )
3.m_Chart.MoveWindow( 0, 0, cx, cy );
3.3 设置 m_Chart
01.void CDemoView::InitChart()
02.{
03.// 设置标题
04.m_Chart.SetTitleText(\示例 by thinkry@263.net\ 05.// 下面两句改变背景色
06.m_Chart.GetBackdrop().GetFill().SetStyle(1);
07.m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255); 08.// 显示图例
09.m_Chart.SetShowLegend(TRUE); 10.m_Chart.SetColumn(1);
11.m_Chart.SetColumnLabel((LPCTSTR)\号机\ 12.m_Chart.SetColumn(2);
13.m_Chart.SetColumnLabel((LPCTSTR)\号机\ 14.m_Chart.SetColumn(3);
15.m_Chart.SetColumnLabel((LPCTSTR)\号机\ 16.// 栈模式
17.// m_Chart.SetStacking(TRUE); 18.// Y轴设置 19.VARIANT var;
20.m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(FALSE); // 不自动标注Y轴刻度
21.m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMaximum(100); // Y轴最大刻度
22.m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMinimum(0); // Y轴最小刻度
23.m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMajorDivision(5); // Y轴刻度5等分
24.m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetMinorDivision(1); // 每刻度一个刻度线
25.m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().SetText(\小时\轴名称 26.// 3条曲线
27.m_Chart.SetColumnCount(3); 28.// 线色
29.m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().GetVtColor().Set(0, 0, 255);
30.m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().GetVtColor().Set(255, 0, 0);
31.m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().GetVtColor().Set(0, 255, 0); 32.// 线宽(对点线图有效)
33.m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(50);
34.m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(100);
35.m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().SetWidth(2);
36.// 数据点类型显示数据值的模式(对柱柱状图和点线图有效) 37.// 0: 不显示 1: 显示在柱状图外
38.// 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
39.m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
40.m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
41.m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); 42.}
3.4 设置数据
01.void CDemoView::DrawChart() 02.{
03.int nRowCount = 6;
04.m_Chart.SetRowCount(nRowCount); 05.VARIANT var; 06.
07.// 不自动标注X轴刻度
08.m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(FALSE); 09.
10.// 每刻度一个标注
11.m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1); 12.
13.// 每刻度一个刻度线
14.m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); 15.
16.// X轴名称
17.m_Chart.GetPlot().GetAxis(0,var).GetAxisTitle().SetText(\日期\ 18.char buf[32];
19.srand( (unsigned)time( NULL ) );
20.for(int row = 1; row <= nRowCount; ++row)
21.{
22.m_Chart.SetRow(row);
23.sprintf(buf, \号\
24.m_Chart.SetRowLabel((LPCTSTR)buf);
25.m_Chart.GetDataGrid().SetData(row, 1, rand() * 100 / RAND_MAX, 0); 26.m_Chart.GetDataGrid().SetData(row, 2, rand() * 100 / RAND_MAX, 0); 27.m_Chart.GetDataGrid().SetData(row, 3, rand() * 100 / RAND_MAX, 0); 28.}
29.m_Chart.Refresh(); 30.}
3.5 改变显示类型 view source print?
01.// 折线图
02.void CDemoView::OnChartLine() 03.{
04.m_Chart.SetChartType(3); 05.DrawChart(); 06.} 07. 08.// 柱状图
09.void CDemoView::OnChartCombi()
10.{
11.m_Chart.SetChartType(1); 12.DrawChart(); 13.}
14.// 饼状图
15.void CDemoView::OnChartPie() 16.{
17.m_Chart.SetChartType(14); 18.DrawChart(); 19.}
正在阅读:
MFC画图的强大工具MSChart的使用11-14
健康教育指导对妊娠糖尿病的效果02-25
1-10知识点06-15
广州建设工程交易中心系统操作常见问题解答 - 图文10-07
沙漠里的驼鸟的第一件宝贝是两条长腿04-18
2018届高考语文总复习第一编语言文字运用专题九名篇名句默写教师用书解析11-11
2013华南理工大学 操作系统课后作业一09-21
昼夜长短及正午太阳高度变化09-06
玉龙煤业有限公司各工种安全操作规程08-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 画图
- 强大
- MSChart
- 工具
- 使用
- MFC
- 电解分析法和库仑分析法
- 2012大学物理最新版本习题册(ok)
- 西南大学网络学院2019秋1195平时作业辅导答案
- 某生态保护治理植被恢复项目施工组织设计
- 楼梯设计步骤及例题
- 地产项目免责文字说明汇总
- 三(5)家长会安排
- 材 料 力 学 实 验 报 告1
- 职工食堂上半年安全工作总结
- 2018年十八岁成人礼心得体会参考
- 建设项目物资催交检验管理规定
- 战略管理
- 试论地域文化在室内装潢设计运用
- 香港税种都有哪些税种
- 2014年公务员考试每日一练类比推理(12)
- 行测高分技巧:制胜近义词填空三样基本功
- 中国甲基二乙醇胺市场调查与市场定位分析报告(2015-2020)
- 信令跟踪
- 大学物理下册(光学&原子力学&机械波)复习试题
- 某医院综合病房楼通风防排烟施工方案