详解基于MFC计算器实现过程

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值