博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
详解基于MFC计算器实现过程
阅读量:4950 次
发布时间:2019-06-11

本文共 1725 字,大约阅读时间需要 5 分钟。

1.也弄个导语

   MFCwindows编程中常用的工具,掌握它将使你的编程效率大大提高,举个例子,同样是写计算器,如果使用的是win32 编程,那无遗工作量大了很多,因为每个button你都要用代码生成,其中的代码量可想而知。而使用MFC构架的话,你可以基于dialog将界面直接设计好,这大大减少了工作量。当然作为一名初学者,多写代码往往是进阶的必要途径,所以在你对windows编程还不怎么熟悉之前建议还是先把win32弄熟。好下面进入主题,如何用MFC编写计算器。我将呕心沥血,将一步步的过程呈现在各位看众面前,感谢大家的捧场。

 

2.MFC的工程生成步骤

  首先在工程里面新建工程,选择MFC AppWizard 假设命工程名为Caculator,这个随意,也可以为 屌丝一号之类,开心就行。

 

 

在类型那选择基本对话框,然后一路下一步,什么都别管。

 

然后你会生成如图所示的界面,没错此刻的你如同哥伦布发现了新大陆,你所需要做的是在这片大陆上建你的城堡。

 

看见旁边的控件栏没,看上的都往界面上拖,别客气。具体需要两类控件,button(按钮以及 edit(编辑框),发挥创造力,界面设计后可如下:

 

注:对button的更改为,右键,属性中更改。

 

3.按钮事件的添加

  假如已经建立了画好的界面,这时的你点按钮是没有反应的。那要怎样才有反应呢?答案是对button添加事件响应,怎么添加?如下:

 在画好的界面下使用组合键 ctrl+w 弹出配置界面。如下图

 

 

 先对该界面中的关键部分解释一下,Object IDs 是你画的界面里的元素ID; Messages是产生事件的方式;因此,对于Button,选择对应的Button ID -> BN_CLICKED(单击) ->  Add Fuction(添加方法) -> 确定 ,你可以发现你的代码里产生了如下代码:

 

 也就是说你点击该按钮时就会执行该方法内的语句,

 

4. 编辑框事件的添加

  编辑框的作用是什么? 在该程序中主要是用来显示键入的数字及运算的结果。有两种实现方式,一是将编辑框定义为一个常量,通过赋值的方式将,键盘的值或者运算结果的值给编辑框然后调用方法,显示该变量。第二种方式是将编辑框定义为一个操作,并通过编辑框调用方法来数据显示,或者获取框内数据。步骤如下:

 步一:和上面同样的方式打开配置环境,点到Member Variables。 如下

 

步二: 点到EDIT 然后 点击 Add Variable ,配置如下:

 

 

然后编辑框就可以通过 属性名 m_edit 调用方法进行数据显示,及数据获取了。

 

Char b[20];

m_edit.GetWindowText(b,20);     //将编辑框里的内容存入数组b中。

m_edit.SetWindowText(b);       //将编辑框里的内容置为数组b里的内容。

 

5.如何实现计算

   完成上面的步骤,MFC的部分基本完成了,接下来的实现过程,基本就和用C之类实现差不多了。对于此,如何利用这些数据进行计算。我的思路如下:当然你也可以设计更牛X的思路。

5.1 设计计算思路

  设想二元计算过程都是先输入一个数,输入符号,再输入一个数,然后输入等号,最后出结果。一元运算为输入一个数,输入符号,然后输入等号,最后出结果。

设计思路如下:

   输入数据一次在编辑框显示该数据,并将该数据用方法取下来存到一个全局数组中,假设为b[20];定义一个变量sum用来存运算结果, 接下来输入符号,对符号进行判断,如果不是等号则并将该值付给一个变量假如为c, 并将数组里面的值传给sum;再输入一个数,这时对C进行判断,做相应的运算,如sum= sum+ b[20]; 最后输入等号时,对等号进行判断,直接输出sum的值,该值就是最终运算结果。

 

至此,实现该程序的所以思路便是如此。

参照源码地址:http://download.csdn.net/download/u010511236/7050349

最后,程序的路上一路荆棘,唯有多练、多想才是王道,与君共勉。

转载于:https://www.cnblogs.com/zhujiangbk/p/3603769.html

你可能感兴趣的文章
图像加载
查看>>
关于zxing生成二维码,在微信长按识别不了问题
查看>>
Haskell学习-高阶函数
查看>>
手动通知扫描SD卡主动生成缩略图
查看>>
js中tagName和nodeName
查看>>
PC-XP系统忘记密码怎么办
查看>>
Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>
SQL数据库学习系列之一
查看>>
Boosting(提升方法)之AdaBoost
查看>>
CUDA学习1 在Visual Studio和CodeBlocks上配置
查看>>
JavaScript(6)——事件1.0
查看>>
2013 ACM-ICPC China Nanjing Invitational Programming Contest 总结
查看>>
【Hibernate学习笔记-5】@Formula注解的使用
查看>>
链接元素<a>
查看>>
Binding object to winForm controller through VS2010 Designer(通过VS2010设计器将对象绑定到winForm控件上)...
查看>>
Spring Boot实战笔记(二)-- Spring常用配置(Scope、Spring EL和资源调用)
查看>>
前端性能优化集【持续更新】
查看>>
第二章:webdriver 控制浏览器窗口大小
查看>>
四则运算2初步构思
查看>>