mschart在VS2005下的使用

来源:互联网 发布:淘宝优惠券网 编辑:程序博客网 时间:2024/04/24 19:19

    一点小经验,与大家分享:)

    前一段因为要在VS2005下画直方图和折线图,所以想到用mschart这个控件。在VC6下用过mschart的朋友应该知道在VC6下添加了mschart控件后会生成很多已经封装好的类,这时我们可以简单的调用封装好的函数实现画图功能,但是在VS2005下添加了mschart控件后只出现mschart1一个类,原来的函数名发生了变化,且很多函数都不能直接调用,需要往里边填很多参数,让人很郁闷。我试图上网查在VS2005下mschart的使用,但发现没有人提到应该怎么用。在MSDN下找到一个帮助文档,例子却不是用C语言写的。

    这个问题困扰了我几天,在这期间试图换一个别的控件,但也不太如意。最后终于想到一个简单而好用的办法。那就是用VC6下的类直接替换掉VS2005下的类。具体的做法是:

       1 在VC6下添加mschart控件,添加方法:

          菜单->Project->Add To Project->Components and Controls->Registered ActiveX Controls->

          Microsoft Chart Control, version 6.0(OLEDB)
         此时得到10多个类,其中有一个CMSChart的类

       2 在VS2005下添加mschart控件,添加方法有多种:

         方法一:工具(T)-》选择工具箱项(X)-》COM组件   在Microsoft Chart Control, version 6.0(OLEDB)前面打上对勾

         方法二:在工具箱的空白处点右键,然后点 选择项 ,接下来的步骤同上

         方法三:若是在对话框上使用此控件,只要在对话框上点右键,选择 插入ActivCMSChart的类eX控件,然后选

                          Microsoft Chart Control,  version 6.0(OLEDB)即可

         添加完之后只会出现Cmschart1的类

       3 将在VC6下产生的那些类的 .cpp 和.h文件全部拷到VS2005底下你所建立的项目的文件夹下,并将他们全部添加到该

          项目,   然后将cmschart1.cpp和cmschart1.h从项目中删除掉就OK了,实质上用VC6下的CMSChart类替换掉了VS2005

         下的  cmschart1类。

        4注意一点就是如果在属性里改变了该控件的ID,那么在DoDataExchange函数的相应位置也要手动改过来,例如我的

          是改成如下这样:

          void CGreenDlg::DoDataExchange(CDataExchange* pDX)
         {
             CDialog::DoDataExchange(pDX);
             DDX_Control(pDX, IDC_MSCHART_Polyline, m_PolylineChart);
             DDX_Control(pDX, IDC_MSCHART_Column, m_ColumnChart);
          }

          大功告成了,现在你可以当它是在VC6下使用。在我使用的范围内,这样做没有出现问题,欢迎大家批评指正。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xuwd05/archive/2008/07/26/2714875.aspx

原创粉丝点击