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设计一个简单的计价程序的更多相关文章
-
[MFC] 梳理一个简单的图片处理桌面软件中用到的MFC控件技巧
前言 前些天应好友之拖,帮忙设计一个简单的图像处理的小软件.朋友把核心算法封装好了,但是是用openCV类似于console的编程环境,要我在此基础上改成MFC桌面程序.下图是做成之后的效果: 我是 ...
-
如何创建一个简单的struts2程序
如何创建一个简单的Struts2程序 “计应134(实验班) 凌豪” 1.创建一个新的Web项目test(File->new->Web Project) 2.Struts2框架的核心配置文 ...
-
用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
-
Tomcat详解系列(1) - 如何设计一个简单的web容器
Tomcat - 如何设计一个简单的web容器 在学习Tomcat前,很多人先入为主的对它的认知是巨复杂的:所以第一步,在学习它之前,要打破这种观念,我们通过学习如何设计一个最基本的web容器来看它需 ...
-
编写一个简单的C++程序
编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...
-
使用Go开发一个简单的服务器程序
最近有个小项目,需要一个简单的后台程序来支撑,本来想用Nodejs来做,但是由于本人js一直很菜,并且很讨厌callback,虽然我也很喜欢异步模型,但我一直都觉得JS是反人类的.后台就用了go处理, ...
-
设计一个简单的,低耗的能够区分红酒和白酒的感知器(sensor)
学习using weka in your javacode 主要学习两个部分的代码:1.过滤数据集 2 使用J48决策树进行分类.下面的例子没有对数据集进行分割,完全使用训练集作为测试集,所以不符合数 ...
-
一个简单的flask程序
初始化 所有Flask程序都必须创建一个程序实例. 程序实例是Flask类的对象,经常使用下述代码创建: from flask import Flask app = Flask(__name__) F ...
-
利用JSP编程技术实现一个简单的购物车程序
实验二 JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...
随机推荐
-
【BZOJ-3697&;3127】采药人的路径&;YinandYang 点分治 + 乱搞
3697: 采药人的路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 681 Solved: 246[Submit][Status][Discus ...
-
【JAVA、C++】LeetCode 004 Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...
-
16、C++获取磁盘空间的方法
使用 C# 获取磁盘空间的方法: public async static Task<int> GetFreeSpace() { StorageFolder localFolder = Ap ...
-
【转】内网yum源搭建
我们内网yum要玩的话,先加hosts,然后找运维要CentOS_base.repo这个文件,然后yum clean all && yum makecache ========== ...
-
python种的builtin函数详解-第三篇
exec_stmt ::= "exec" or_expr ["in" expression ["," expression]] eval(e ...
-
java自动装箱拆箱总结
对于java1.5引入的自动装箱拆箱,之前只是知道一点点,最近在看一篇博客时发现自己对自动装箱拆箱这个特性了解的太少了,所以今天研究了下这个特性.以下是结合测试代码进行的总结. 测试代码: int a ...
-
Python第一篇-简介和入门
简介: Python[1] (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第 ...
-
Reverse Nodes in k-Group leetcode java
题目: Given a linked list, reverse the nodes of a linked list k at a time and return its modified list ...
-
scandir函数的研究【笔记】
以下是本人的学习笔记,代码并非原创,均摘自官方源码,贴出来仅供学习记录用 scandir 的使用要注意内存泄漏的问题 scandir函数实现: vi ./uClibc-0.9.33.2/libc/mi ...
-
mongodb批量插入数据
年前由于公司业务需要,后台需要获取流水记录,需要每天定时跑脚本,将流水记录跑入库里边,每天大概有个一百万左右,使用的数据库是mongodb,考虑到一条一条录入数据,100多万会跑断,就想着批量录入数据 ...