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();
	}
}

运行程序

相关推荐
REDcker1 分钟前
C++ new、堆分配与 brk / mmap
linux·c++·操作系统·c·内存
阿阿阿阿里郎6 分钟前
C++面向对象--类、模板
c++
William_wL_6 分钟前
【C++】list的使用
c++
Elnaij13 分钟前
从C++开始的编程生活(25)——C++11标准Ⅱ
开发语言·c++
cjforever1415 分钟前
各STL容器的模拟实现
开发语言·数据结构·c++
郝学胜-神的一滴28 分钟前
Linux高性能网络编程基石:epoll核心与文件描述符限制全解
linux·服务器·网络·c++·后端
房开民9 小时前
c++总结
java·开发语言·c++
好大哥呀9 小时前
C++ 多态
java·jvm·c++
墨韵流芳10 小时前
CCF-CSP第41次认证第三题——进程通信
c++·人工智能·算法·机器学习·csp·ccf
hz_zhangrl10 小时前
CCF-GESP 等级考试 2026年3月认证C++五级真题解析
c++·青少年编程·程序设计·gesp·c++五级·gesp2026年3月·gesp c++五级