VS + MFC + Teechart 离线安装及输出三维曲线

一、VS 2022 和 MFC 组件离线安装

1.此处以 Enterprise 版本为例,先下载对应的 exe 文件 (vs_Enterprise.exe),并保存到某个文件夹中,如(F:\vs2022)。

VS + MFC + Teechart 离线安装及输出三维曲线_第1张图片

​ 2.使用cmd命令,提前下载各种需要工作负荷或组件的离线包。

       进入cmd 命令界面,首先使用 cd 命令进入到exe文件的位置,如 F:\vs2022。再执行下载命令(依据自己的需求,需要什么组件,执行对应命令即可):

       1)下载命令各参数意义如下:
       --layout :指定工作负荷或组件离线包的保存路径,如: --layout F:\vs2022;不指定位置则默认下载到当前路径。
       --add :指定需要添加的工作负荷或组件的 ID;如果语句中没有 --add,则默认添加所有工作负载和组件。
       --includeOptional/–includeRecommended:安装所选的工作负荷组里面的 必选项/全部项
       --lang :语言(中文:zh-cn ,英文:en-US),安装语言包

       2)添加 For .NET web 和 .NET desktop 工作负荷:

vs_Enterprise.exe --layout --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional --lang zh-cn

       3)添加 使用 C++ 的桌面开发 工作负荷:

vs_Enterprise.exe --layout --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --lang zh-cn

       4)添加 Visual Studio 扩展开发,通用 Windows 平台开发 工作负荷:

vs_Enterprise.exe --layout --add Microsoft.VisualStudio.Workload.VisualStudioExtension --add Microsoft.VisualStudio.Workload.Universal --includeRecommended --lang zh-cn

       5)添加 使用 C++ 的桌面开发 工作负荷中的 MFC 组件:

    (MFC组件ID:Microsoft.VisualStudio.Component.VC.ATLMFC)

vs_Enterprise.exe --layout --add Microsoft.VisualStudio.Component.VC.ATLMFC --includeRecommended --lang zh-CN

       6)其他工作负荷或组件的ID,参考官网:

Visual Studio Community workload and component IDs | Microsoft Learnhttps://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-community?view=vs-2019&preserve-view=true#visual-studio-core-editor-included-with-visual-studio-community-20193.离线安装。

       下载完成后,将整个文件夹拷贝到离线的电脑上(若提示:确定要在不复制其属性的情况下复制此文件,点击 是 即可),双击 vs_setup.exe 即可安装。

VS + MFC + Teechart 离线安装及输出三维曲线_第2张图片

        注意,在下图选择工作负荷时,只能选择步骤2中下载过的工作负荷或组件,不然会导致安装失败;同时,可以检查一下有没有漏选步骤2中下载的工作负荷或组件。

VS + MFC + Teechart 离线安装及输出三维曲线_第3张图片

       若安装后,需要再下载其他工作负荷或组件,按上述步骤2下载需要的工作负荷和组件后重新拷贝文件到离线电脑,再双击文件中的  vs_setup.exe 后即可。

二、Teechart 安装与配置

1.下载好 Teechart 8 安装包后,将其中 Teechart8.ocx 拷贝到 C:\Windows\SysWOW64 (此处为64位系统的安装方法)目录下;

2.在C:\Windows\SysWOW64目录下找到 cmd.exe ,并以管理员方式运行;

3.输入命令:regsvr32 C:\Windows\SysWOW64\Teechart8.ocx,系统提示注册成功即可。

4.若要安装Teechart5.ocx,需要先安装 TeeChartAndroidEval-4.16.5.13-windows.exe 插件(双击后一直点 NEXT 即可),安装后再执行上面的1~3的步骤。

三、MFC+Teechart 在界面输出三维曲线

1.新建 “MFC应用 ” 工程项目。

VS + MFC + Teechart 离线安装及输出三维曲线_第4张图片

        选择保存路径(如 C:\Users\lenovo\source\repos),并定好名称(如 MFCApplication1);点击 “创建” 后,出现如下对话框,在 应用程序类型(T) 栏选择 “基于对话框” ;点击 “用户界面功能” 根据自己选择所需内容,如最小化最大化框等。最后,点击完成即可。

VS + MFC + Teechart 离线安装及输出三维曲线_第5张图片

VS + MFC + Teechart 离线安装及输出三维曲线_第6张图片

 2.加入Teechart控件。

        右击对话框界面,然后选择 “插入ActiveX插件”,然后选择 TeeChart Pro ActiveX control v8 并点击确定。

VS + MFC + Teechart 离线安装及输出三维曲线_第7张图片

​3.添加TeeChart文件。

        将Teechart 8 安装包中的 TeeChart 文件夹,复制到 MFCApplication1 工程文件下。

        此处路径为: C:\Users\lenovo\source\repos\MFCApplication1\MFCApplication1 

VS + MFC + Teechart 离线安装及输出三维曲线_第8张图片

 4.添加变量。

        右击Teechart控件,选择 “添加变量” ,并定好名称(如 my_Tchart),点击确定,此时系统自动在 MFCApplication1Dlg.h 文件中生成一个语句:

CTCHART1 my_Tcahrt;

5.程序修改。

        对 MFCApplication1Dlg.h 文件做出以下修改:

       1)将其自动生成的语句 CTCHART1 my_Tcahrt 改为:

CTChart my_Tcahrt;

       2)将其自动生成的语句 #include "CTCHART1.h" 注释掉,添加 #include "TeeChart\tchart.h" ;然后在解决方案资源管理器中,分别移除头文件中的 CTCHART1.h 和 源文件中的 CTCHART1.cpp。右击.h 或 .cpp文件,选择移除即可。

6.添加相关的 .h 或 .cpp文件。

       1)添加.cpp文件

       解决方案资源管理器中,右击源文件,选择添加——>现有项,然后进入TeeChart文件夹,找到需要的.cpp文件即可。

       2)添加.h文件

       解决方案资源管理器中,右击头文件,选择添加——>现有项,然后进入TeeChart文件夹,找到需要的.h文件即可。

       一般需要添加 tchart.cpp/h 、series.cpp/h 、point3dseries.cpp/h 等文件。添加后,需要在MFCApplication1Dlg.cpp 中加入添加文件对应的头文件引用,如:

#include "TeeChart\series.h"
#include "TeeChart\point3dseries.h"

7.调试或运行时,使用Debug + Win32 或 Release + Win32 模式,不然会出现错误:  “Debug Assertion Failed!”。

8.使用TeeChart画图。
        1)添加 series 序列(在该控件中要绘制几条曲线就添加几个 series ,如添加2条曲线,便需要添加2个 series) 。

        双击TeeChart控件,在弹出的对话框中选择 “Add” 按钮。若要绘制三维图,则选择 3D—Point 3D—No Piont;若要绘制二维图,则先取消对话框左下角勾选的 “3D”,然后选择 Standard—Fast Line—Normal。

VS + MFC + Teechart 离线安装及输出三维曲线_第9张图片

VS + MFC + Teechart 离线安装及输出三维曲线_第10张图片

VS + MFC + Teechart 离线安装及输出三维曲线_第11张图片

​       在上图中标出的 1 区域,可以对图像坐标系的坐标轴标识、图例位置、曲线颜色和线宽等进行修改;在 2 区域可以对更改曲线序列的名字。 

      2)画图前先清空图像,定义清空函数

void CMFCApplication1Dlg::ClearAllSeries() 
{
     for( long i  =  0;i 

      2)拖入 Button 控件,双击后在 MFCApplication1Dlg.h 自动生成事件响应函数的声明;

afx_msg void OnBnClickedButton1();

      3)在 MFCApplication1Dlg.cpp 自动生成的 void CMFCApplication1Dlg::onBnclickedButton1(){} 事件响应函数中添加绘图程序。

      定义好动态数组 :vector VectorXt,VectorYt,VectorZt 等,用以保存绘图的数据,数组赋值前同样需要先清空数组;

void CMFCApplication1Dlg::onBnclickedButton1()
{
   //清空数组和图像
   VectorXt.clear();
   VectorYt.clear();
   VectorZt.clear();
   VectorXm.clear();
   VectorYm.clear();
   VectorZm.clear();
   ClearAllSeries();

   //绘图数据保存
   for(int i=0;i<50;i++)
   {
      double x,y,z;
      x=(double)i;
      y=(double)i;
      z=(double)i;
      VectorXt.push_back(x);
      VectorYt.push_back(y);
      VectorZt.push_back(z);
      VectorXm.push_back(150-x);
      VectorYm.push_back(150-y);
      VectorZm.push_back(150-z);
   }

   CSeries myline1,myline2;
   int len=VectorXt.size();
   myline1  = (CSeries)my_Tchart.Series(0);  //定义曲线1
   myline2  = (CSeries)my_Tchart.Series(1);  //定义曲线2

   //若需要添加的第二个TeeChart插件,命名my_Ttchart2
   //myline1  = (CSeries)my_Tchart2.Series(0);  
   //myline2  = (CSeries)my_Tchart2.Series(1); 

   for(int i=0;i Format  里设置 line 样式和颜色
     
     //二维曲线
     //myline2.AddXY(X,Y,NULL,RGB(255,0,0));
   }
}

VS + MFC + Teechart 离线安装及输出三维曲线_第12张图片

​         注意,若要输出两个图像(不是一个图像两条曲线),就需要在界面再插入另一个TeeChart ActiveX插件:右击对话框—>插入ActiveX插件—>选择 TeeChart Pro ActiveX control v8,然后右击插件——>添加变量—>命名 my_Tchart2,添加变量后需要删除自动生成的 CTCHART2.h 和 CTCHART2.cpp 文件,并修改:

//CTCHART2 my_Tchart2;  //修改为下面的定义
CTchart my_Tchart2;

四、MFC+ Teechart 使用注意事项

1.添加 Button 或 其他控件 时,需要在对应的 ***Dlg.cpp文件中写入: #include "resource.h" ;

2. error: 无法解析外部符号!
      1)手动添加错误提示里的的.cpp文件和.h头文件,如 tchart.cpp , series.cpp , point3dseries.cpp 等;右击源文件——>添加——>现有项——>.cpp或.h文件。

      2)也可能是在.h文件里声明了某个成员函数,却没有在对应的.cpp里面实现。

3.移除自动生成的 CTCHART1.h 和 CTCHART1.cpp 文件;

4.error:提示是否忘记向源中添加“#include"pch.h" !

      属性——>C/C++——>预编译头——>不使用预编译头;

5.资源视图中.rc文件提示:在另一个编辑器中打开!

      关闭resource.h文件;

6. error:  Debug Assertion Failed!

     1)确为程序有误:点击 重试 ,“调用堆栈”窗口查看错误代码位置,检查其是否有误;

     2)检查若无误:试着使用 Debug + win32 模式 调试程序;

7.画出的多条三维曲线颜色都是黑色:是因为曲线各点的颜色仍然设置为黑色,需要双击控件后进入Series--> Format 里设置 line 的样式和颜色。

 VS + MFC + Teechart 离线安装及输出三维曲线_第13张图片

8.运行后,TeeChart画图区域显示为空白而没有报错,可能是被其他大控件遮挡了(如 Group Box 控件),此时需要在Group Box 属性里设置 透明 的属性值为 True。

9.使用 Edit Control 进行界面的 输入和输出:
      右击 Edit Control 控件,为各个Edit Control 控件添加一个变量,用于保存Edit Control 控件编辑框中的数据。在弹出的对话框中

           类别:选择为 “值”:
           名称:此处取 input 是输入编辑框的变量名,output 是输出编辑框的变量名;
           变量类型:作为输入的编辑框选择 double 类型,作为输出的编辑框最好选择 CString 类型;

//获取界面中所有 Edit 编辑框内的值 
UpdateData(TRUE); 

//根据程序目的,自定义数据处理程序
CString str; 
str.Format(_T("%.4f"),input/2);  //input 是输入编辑框添加的变量名;结果保留4位小数; 
output=str;                      //output 是输出编辑框添加的变量名;

//更新界面中所有 Edit 编辑框内的值(即在界面显示重新赋值后的output值)
UpdateData(FALSE);

10.按钮弹出消息框
        右击资源视图的Dialog文件—>添加资源—>新建,然后在生成的对话框中(资源视图中的Dialog下查看)右键—>添加类并命名(如:CMyNewDlg )。

        添加 CMyNewDlg 类后,双击执行弹出消息框操作的按钮,在其事件响应函数中添加如下程序:

void CMFCApplication1Dlg::OnBnClickedOk()
{
   CMyNewDlg  Dlg;
   Dlg.DoModal();
}

        注意,在按钮事件响应函数所在的cpp文件程序前面添加: #include   "CMyNewDlg.h "

VS + MFC + Teechart 离线安装及输出三维曲线_第14张图片

你可能感兴趣的:(#,C++,c++,mfc)