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. ES6 入门Promise

    Promise是一个对象用来传递异步操作的消息,有三种状态:Pending(进行中),Resolved(已完成又称Fulfilled)和Rejected(已失败). 特点:对象状态不受外界的影响.一旦 ...

  2. django之用户表的继承

    有这样一个场景,之前已经设计好了用户的信息表,但是再设计另外一个业务表的时候,信息有点重复,如何重新设计呢? 可以采用表的继承,让一个表作为基类,业务表就可以继承它 要注意以下几点 1 作为基类的表使 ...

  3. 【亲测】解决虚拟机CentOS7联网ping不通相关问题(通俗易懂)

    对于是使用windows操作系统的小伙伴来说(mac用户忽略),要学习一些技术可能需要使用Linux系统,自然就需要使用虚拟机安装Linux,当然现在很多主流的学习网站上的教程都会提供老师配置好的虚拟 ...

  4. Http的那些事: Content-Type

    Content-Type 无疑是http中一个非常重要的属性了, request 中可以存在, 也可以不存在( request的Content-Type 默认是 */*, 实际上呢, 如果不存在Con ...

  5. linux安装jdk8

    1.文件准备 jdk-8u201-linux-x64.tar.gz 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8- ...

  6. Django_Form验证(二),ajax验证

    还是一个简单的html提交页面,ajax提交就不需要form表单了: <p><input id="a" type="text" name=&q ...

  7. CentOS7 firewalld防火墙配置

    [root@ecs ~]# firewall-cmd --version       //查看版本0.3.9 [root@ecs ~]# firewall-cmd --state        //查 ...

  8. 100-days: twelve

    Title:   Mark Zuckerberg wants Facebook's to emulate China's WeChat, but can it? emulate v.效仿,模仿 As ...

  9. 【python原理解析】gc原理初步解析

    python的gc是会用到:引用计数.标记-清除和分代收集,首先说明一下什么是引用计数 可以通过sys模块中的getrefcount()方法获取某个对象的引用计数 python本身的数据类型有基础类型 ...

  10. 信号基础知识---单频矩形脉冲信号CW

    %CW%参考:声呐技术 P27,31clc;close all;clear all;%参数-------------------------f0=50;T=0.1;%时宽B=1/T;fs=1000;% ...