1、实验目的

  掌握使用MFC应用程序向导创建应用程序的方法。

  掌握新建对话框资源的方法。

  掌握生成对话框的方法。

2、实验内容

  用应用程序创建一个默认的对话框应用程序,在对话框中能进入下一个对话框,在新的对话框中完成计算总价的功能。效果图如下:

3、实验步骤

1、新建工程

  打开vs2017,新建MFC工程

选择基于对话框,然后其他都是默认设置,点击完成。

2、修改资源,添加控件

在资源文件中,点击mfcdlg.rc

然后展开Dialog文件夹,点击DIALOG打开对话框操作界面

对对话框界面进行操作,可以通过工具箱来来添加控件。

控件删减修改后如图所示:

选中按钮控件,右键选择属性,在属性的Caption中进行如下修改,可以看到按键显示变为了测算。

3、插入新的对话框模板

下面插入一个新的对话框模板

设置新的对话框属性如下,

4、创建对话框类

  选中测算对话框,右键,选择添加类

点击确定会生成一个Cmydlg.h的文件

5、添加打开对话框的控件处理函数

选中IDD_MFCDLG_DIALOG对话框,双击测算按钮会打开mfcDLG.cpp文件

添加处理程序diamagnetic如下:

void CmfcdlgDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
Cmydlg dlg;//定义Cmdlg类的对象dlg
dlg.DoModal();//显示对话框
}

6、添加在IDD_COMPUTE_DIALOG对话框中添加控件

  一次添加三个编辑框控件,三个静态文本控件,和一个按钮控件即可,如下所示

添加完成后布局如下:

修改statictext控件的属性和button的属性Caption,让其显示如下

7、为Edit Control控件添加成员变量

  选中Edit Control控件,右键,选中添加变量

因为输入的是价格数目,所以类别选值,变量类型选择float,访问设置为public,名称对应的是m_price\m_number\m_total

全部设置完成后,打开Cmydlg.h,可以看到类下已经含有了成员变量。

且Cmydlg.cpp中已经包含了成员变量。

这里就是我们添加成员变量的全部操作,如果你发现你添加成员变量的过程中有错误,可以删除上面.h和.cpp的红框中部分,重新设置,当然,你也可以直接通过源码修改。

8、添加控件处理函数

  在本例中,处理函数比较简单,双击计算按钮进入控件事件函数,然后添加代码如下:

void Cmydlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
m_total = m_price * m_number;
UpdateData(false);
}

9、添加控件处理函数

  选择生成->生成解决方案,然后点击调试——>开始执行即可得到如下框图

点击测算,即可打开测算对话框

输入价格,数量,点击计算即可得到总价。

通过MFC设计一个简单的计价程序的更多相关文章

  1. [MFC] 梳理一个简单的图片处理桌面软件中用到的MFC控件技巧

     前言 前些天应好友之拖,帮忙设计一个简单的图像处理的小软件.朋友把核心算法封装好了,但是是用openCV类似于console的编程环境,要我在此基础上改成MFC桌面程序.下图是做成之后的效果: 我是 ...

  2. 如何创建一个简单的struts2程序

    如何创建一个简单的Struts2程序 “计应134(实验班) 凌豪” 1.创建一个新的Web项目test(File->new->Web Project) 2.Struts2框架的核心配置文 ...

  3. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  4. Tomcat详解系列(1) - 如何设计一个简单的web容器

    Tomcat - 如何设计一个简单的web容器 在学习Tomcat前,很多人先入为主的对它的认知是巨复杂的:所以第一步,在学习它之前,要打破这种观念,我们通过学习如何设计一个最基本的web容器来看它需 ...

  5. 编写一个简单的C++程序

    编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...

  6. 使用Go开发一个简单的服务器程序

    最近有个小项目,需要一个简单的后台程序来支撑,本来想用Nodejs来做,但是由于本人js一直很菜,并且很讨厌callback,虽然我也很喜欢异步模型,但我一直都觉得JS是反人类的.后台就用了go处理, ...

  7. 设计一个简单的,低耗的能够区分红酒和白酒的感知器(sensor)

    学习using weka in your javacode 主要学习两个部分的代码:1.过滤数据集 2 使用J48决策树进行分类.下面的例子没有对数据集进行分割,完全使用训练集作为测试集,所以不符合数 ...

  8. 一个简单的flask程序

    初始化 所有Flask程序都必须创建一个程序实例. 程序实例是Flask类的对象,经常使用下述代码创建: from flask import Flask app = Flask(__name__) F ...

  9. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

随机推荐

  1. Dubbo源码解析之registry注册中心

    阅读须知 dubbo版本:2.6.0 spring版本:4.3.8 文章中使用/* */注释的方法会做深入分析 正文注册中心是Dubbo的重要组成部分,主要用于服务的注册与发现,我们可以选择Redis ...

  2. python3 列表去除重复项保留原序

    l1 = ['a',1,'c','b',2,'b','c','d','a'] l2= sorted(set(l1),key=l1.index) print('l2:',l2) print('l1:', ...

  3. python 在window 系统 连接并操作远程 oracle 数据库

    1,python 连接 oracle 需要 oracle 自身的客户端  instantclient,可以去官网下载自己需要的版本, https://www.oracle.com/technetwor ...

  4. spring 大会的启示

    1.事件驱动的微服务编程 2.无服务架构的编程模型 3.微服务缓存

  5. shell脚本运行java程序jar

    在UBuntu上部署项目的时候,我们往往通过一段shell来启动程序,甚至是通过crontab定时任务来定时的调用java程序,但是很奇怪的一个问题就是,比如我写了一个如下的shell脚本: #!/b ...

  6. cfile fopen fopen_s win10下打开文件失败

    vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下: 由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统 ...

  7. mac下安装cnpm淘宝镜像

    cnpm:官网 (事先已经安装了node,有npm)查看官网,提示安装需运行命令:npm install -g cnpm --registry=https://registry.npm.taobao. ...

  8. Java6及以上版本对synchronized的优化

    目录 1.概述 2.实现同步的基础 3.实现方式 4.Java对象头(存储锁类型) 5.优化后synchronized锁的分类 6.锁的升级(进化) 6-1.偏向锁 6-2.轻量级锁 6-3.锁的比较 ...

  9. Python爬虫中文小说网点查找小说并且保存到txt(含中文乱码处理方法)

    从某些网站看小说的时候经常出现垃圾广告,一气之下写个爬虫,把小说链接抓取下来保存到txt,用requests_html全部搞定,代码简单,容易上手. 中间遇到最大的问题就是编码问题,第一抓取下来的小说 ...

  10. SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作

    在开发或者测试环境的数据库中,经常会发现有开发或者测试人员误删除表或者数据的情况,对于开发或者测试库,一般都没有安排定时的备份任务去备份数据库,一方面是由于存储资源有限,不太可能给开发或者测试环境准备 ...