当前位置: 首页 > news >正文

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

承接专栏《MFC工控项目实例之二主菜单制作》
用theApp变量传递对话框参数实时改变iPlotX坐标轴最小值、最大值。
1、新建IDD_SYS_DATA对话框,类名SYS_DATA。
在这里插入图片描述
三个编辑框IDC_EDIT1、IDC_EDIT2、IDC_EDIT3变量如图
在这里插入图片描述
2、SEAL_PRESSURE.h中添加代码

#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中添加代码

public:
void iPlotX_SHOW();

4、SYS_DATA.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中添加代码

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

运行程序在这里插入图片描述
在这里插入图片描述

相关文章:

  • Java 异常处理 -- Java 语言的异常、异常链与断言
  • react修改本地运行项目的端口
  • 重装系统,以及设置 深度 学习环境
  • Kubernetes(K8s)从入门到精通系列之十九:Operator模式
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 游戏表演赛分队(100分) - 三语言AC题解(Python/Java/Cpp)
  • 软件方案评审与模块优化:从FOC模块出发的电控平台建设
  • 【PX4-AutoPilot教程-TIPS】离线安装Flight Review PX4日志分析工具
  • 从零制作一个docker的镜像
  • react有什么特点
  • 渗透测试nginx增加400,500报错页面
  • 网页自动关闭
  • 【FreeRTOS】ARM架构汇编实例
  • Json-server 的使用教程
  • Jupyter Notebook简介
  • 儿童编程语言
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 2017 年终总结 —— 在路上
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • ESLint简单操作
  • happypack两次报错的问题
  • HTTP--网络协议分层,http历史(二)
  • idea + plantuml 画流程图
  • Invalidate和postInvalidate的区别
  • Java应用性能调优
  • mysql外键的使用
  • v-if和v-for连用出现的问题
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 对象管理器(defineProperty)学习笔记
  • 浮动相关
  • ------- 计算机网络基础
  • 记一次用 NodeJs 实现模拟登录的思路
  • 技术发展面试
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #define、const、typedef的差别
  • #宝哥教你#查看jquery绑定的事件函数
  • %check_box% in rails :coditions={:has_many , :through}
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (26)4.7 字符函数和字符串函数
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (C语言)球球大作战
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)WLAN定义和基本架构转
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Core 中插件式开发实现
  • .net php 通信,flash与asp/php/asp.net通信的方法