现在网络上对MSChart控件(画各种统计图)的使用基本上利用VC6.0完成。虽然VC6.0是一个很经典的版本,但是对于现在某些方面的需求还是不能很方便的满足,例如加载各种格式的图片(缺少CImage 类,如果有知道很方便调用的大牛也可已给我讲讲,小弟将不胜感激)。

现目前网络上对于VS调用MSChart控件的文章寥寥可数,基本上分为两种:1、将VC6.0中的生成文件copy入VS工程,然后进行相应的操作(本人试验未成功)。2、利用VS中的CMschart1这个类进行调用。

下面我主要对第二种成功过的方法进行介绍:

1、首先,在很多人安装的Vs2010版本中没有Microsoft chart control控件。可先按照网上安装Microsoft chart control控件的方法,下载

mschrt20.ocx

,放在system32中,安装并注册控件,网上材料很多,不在赘述。

2、然后,建立工程,选择对话框程序。添加Microsoft chart control控件(选择ActiveX控件中com中找到,添加ActiveX控件: Tools->choose toolbox items->COM components  选择Microsoft chart control )。

3、添加类 Project->Addclass ->MFC class from Typelib 选择 Microsoft chart control  。初学者可以全部添加,这时工程中会生成许多CVc开头的头文件。

下面就可以编写代码了:

首先添加头文件:

#include <windows.h>
#import <msdatsrc.tlb> no_namespace
#import <mschrt20.ocx> no_namespace

(本人就是上面这两句没有添加,浪费了两天时间整这个玩意。。。。)

#include "CDMSChart.h"
#include "CVcPlot.h"
#include "CVcAxis.h"
#include "CVcValueScale.h"
#include "CVcSeriesCollection.h"
#include "CVcSeries.h"
#include "CVcPen.h"
#include "CVcCategoryScale.h"
#include "CVcColor.h"
#include "CVcDataGrid.h"
#include "CVcBackdrop.h"
#include "CVcFill.h"
#include "CVcBrush.h"
#include "CVcDataPoints.h"
#include "CVcDataPoint.h"
#include "CVcDataPointLabel.h"
#include "CVcAxisTitle.h"

相关函数头文件,你懂得。

特别注意的是,在VS2010中,许多对该空间操作的函数发生了改变。原来set开头的函数都变为了put_,例如

 m_Chart.put_TitleText(L"Plot");

在原来的版本中是:

 m_Chart.SetTitleText(L"Plot");

只要注意这个问题,许多函数的使用与VC6.0中基本类似。

下面附一些使用代码作为参考:

 CVcBackdrop vcBackdrop;
CVcFill vcFill;
//m_Chart.GetBackdrop().GetFill().SetStyle(1);
vcBackdrop = m_Chart.get_Backdrop();
vcFill = vcBackdrop.get_Fill();
vcFill.put_Style(1);
//m_ctrlChart.get_Backdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255);
CVcBrush vcBrush;
CVcColor vcColor;
vcBrush = vcFill.get_Brush();
vcColor = vcBrush.get_FillColor();
vcColor.Set(255, 255, 255);
 VARIANT var;
CVcPlot vcPlot = (CVcPlot)m_Chart.get_Plot();
CVcAxis vcAxis = (CVcAxis)vcPlot.get_Axis(1,var);
CVcValueScale vcValueScale = vcAxis.get_ValueScale();
vcValueScale.put_Auto(FALSE);// 不自动标注Y轴刻度
vcValueScale.put_Maximum(100);// Y轴最大刻度
vcValueScale.put_Minimum(0);// Y轴最小刻度
vcValueScale.put_MajorDivision(4);// Y轴刻度5等分
vcValueScale.put_MinorDivision(0);// 每刻度一个刻度线
CVcAxisTitle vcAxisTitle = vcAxis.get_AxisTitle();// 名称
vcAxisTitle.put_Text(_T("Y轴"));

小弟也是新手一枚,许多地方还有很多的不足,望各位大侠批评指正。

补充:

看见很多人说下载的资源调试不通过,我还以为是我的代码出了问题,今个儿又从新调试了一次。发现很多调试不通过的同学都是因为空间没有注册。所以在此做一个补充:

mschrt20.ocx下载地址:
http://download.csdn.net/detail/wanglihongwm/6431169

注册方法:复制本文件到C盘window/system32/下,然后再命令行中输入regsvr32 mschrt20.ocx即可。在运行实例,成功!!

感谢大家提出的建议~

VS2010对话框中使用MSChart控件相关推荐

  1. 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转)

    用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转) 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://hcq11.blogbus.com/logs/5 ...

  2. 设置、获得对话框中 编辑框控件 EDIT 的内容

    对于获取EDIT控件 1.未绑定变量时: Invalidate(FALSE);//更新控件的内容CString str;str.Empty();GetDlgItem(IDC_EDIT)->Get ...

  3. MFC中动态创建控件以及事件响应实现方法

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  4. MFC中动态创建控件以及添加事件响应

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  5. MFC中动态创建控件及添加消息响应的方法实例

    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框, ...

  6. MsChart控件在VC++中的使用

    关于MsChart控件的注册: 32位系统之下 1.将mschrt20.ocx放在windows/system32目录下.注意,这个文件名中的没有字母a,即没有写chart中的字母a,就是这一细节让我 ...

  7. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

    最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序 ...

  8. VS2010下ocx开发:(2)在C#程序中调用ocx控件

    在本文中,给出一个C#示例程序,调用上一篇博文中创建的MultiplyDemo.ocx控件.注意需要保证该控件已经注册过. 启动Visual Studio 2010,使用C#创建一个Windows窗体 ...

  9. 鸡啄米vc++2010系列7(对话框:创建对话框类和添加控件变量)

    前两讲中鸡啄米为大家讲解了如何创建对话框资源.创建好对话框资源后要做的就是生成对话框类了.鸡啄米再声明下,生成对话框类主要包括新建对话框类.添加控件变量和控件的消息处理函数等. 因为鸡啄米给大家的例程 ...

  10. 在 .NET Compact Framework 2.0 中宿主 ActiveX 控件

    适用于: ActiveX Microsoft .NET Compact Framework 版本 2.0 摘要:了解如何在使用 .NET Compact 的应用程序中宿主 ActiveX 控件.本文提 ...

最新文章

  1. 微信小程序 = 滚动页面
  2. Docker/Docker 起步123
  3. 银行系普惠和小贷系普惠,哪个贷款更靠谱?
  4. 确认类是否可以在运行期使用
  5. 闪灯什么意思_开夜车被对方闪了一下是什么意思?老司机:灯语都不懂,晚上别开车...
  6. tomcat 参数最佳实践_一线架构师开发总结:剖析并发编程+JVM性能,深入Tomcat与MySQL...
  7. J2ME游戏中的图片处理
  8. p2p 源码 linux,我们打算开发一个WiFi功能的P2P文件共享系统在Linux平台…
  9. [译][Tkinter 教程15] event 事件绑定
  10. 分布式系统研发初体验
  11. jquery thinkphp mysql_ThinkPHP5+jQuery+MySql如何实现投票功能
  12. Cocoapods的安装及使用
  13. wordpress获取home_wordpress各种获取路径和URl地址的函数总结
  14. Camera 初始化(Open)二(HAL3中Open过程)
  15. history 历史命令
  16. UML-----构件图与部署图
  17. Kaldi中语音数据增强方法
  18. wifi信道12为啥没人用_为什么我的无线路由器没有WIFI信道设置
  19. 小写金额转换为大写金额
  20. RocKey4加密狗复制软件及教程

热门文章

  1. 如何设置CSDN的ID(仅新建可设置)
  2. Suricata默认规则集相关
  3. 百度硬盘搜索 2.3 试用手记
  4. Unity 隐藏鼠标
  5. 掌上百度2011java_掌上百度2011通用版 掌上百度 Java空间版
  6. 《数据挖掘概念与技术》第八章 分类:基本概念
  7. Windows Server 2016 RTM AVMA Keys
  8. document.documentElement.clientHeight与document.body.clientHeight的区别
  9. 计算机boot进入u盘启动,用U盘重装系统怎么把Boot设置为启动项?
  10. 看图计算机械加工工时,急求机械加工工艺编制和工时定额制定与核算软件!!!...