MFC工控项目实例之三theApp变量传递对话框参数

承接专栏《MFC工控项目实例之二主菜单制作》

用theApp变量传递对话框参数实时改变iPlotX坐标轴最小值、最大值。

1、新建IDD_SYS_DATA对话框,类名SYS_DATA。

三个编辑框IDC_EDIT1、IDC_EDIT2、IDC_EDIT3变量如图

2、SEAL_PRESSURE.h中添加代码

cpp 复制代码
#include "resource.h"		// main symbols
typedef struct sys_para
{
	union
	{
		struct
		{
		double	m_fMaxTime;
double	m_fMinTime;
double	m_fMaxPressure;
double	m_fMinPressure;				
				
		};
		char len1[4096];
	};

}SYS_PARA;


class CSEAL_PRESSUREApp : public CWinApp
{
public:
	CSEAL_PRESSUREApp();
    SYS_PARA m_sys_data;
	public:
	virtual BOOL InitInstance();
	DECLARE_MESSAGE_MAP()
};

extern class CSEAL_PRESSUREApp theApp;

3、SEAL_PRESSUREDlg.h中添加代码

cpp 复制代码
public:
void iPlotX_SHOW();

4、SYS_DATA.cpp中添加代码

cpp 复制代码
void SYS_DATA::OnOK() 
{
	// TODO: Add extra validation here	
	if(!UpdateData())
		return;
	CDialog::OnOK();
    theApp.m_sys_data.m_fMaxTime=m_fMaxTime;
	theApp.m_sys_data.m_fMinPressure=m_fMinPressure;
	theApp.m_sys_data.m_fMaxPressure=m_fMaxPressure;
}

5、SEAL_PRESSUREDlg.cpp中添加代码

cpp 复制代码
#include "SEAL_PRESSURE.h"
#include "SEAL_PRESSUREDlg.h"
#include "SYS_DATA.h"
#include "iplotchannelx.h"
#include "iPlotAxisX.h"
void CSEAL_PRESSUREDlg::iPlotX_SHOW() 
{
	// TODO: Add your control notification handler code here
	CiPlotAxisX axis;		
		axis = m_ctrlPlot_1.GetXAxis(0);
		axis.SetMin(0);
		axis.SetSpan(theApp.m_sys_data.m_fMaxTime);
		axis = m_ctrlPlot_1.GetYAxis(0);
		axis.SetMin(theApp.m_sys_data.m_fMinPressure);
		axis.SetSpan(theApp.m_sys_data.m_fMaxPressure - theApp.m_sys_data.m_fMinPressure);

}

void CSEAL_PRESSUREDlg::OnSysData() 
{
	
 SYS_DATA dlg;
	if(dlg.DoModal() == IDOK)
	{
		iPlotX_SHOW();
		Invalidate();
	}
}

运行程序

相关推荐
郝学胜_神的一滴2 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
见过夏天18 小时前
C++ 基础入门完全指南
c++
用户805533698032 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK3 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境3 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境3 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴4 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境6 天前
C++ 的Eigen 库全解析
c++
卷无止境6 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端
郝学胜_神的一滴6 天前
CMake 27:缓存变量的特性、语法、类型与实操全解
c++·cmake