学习最有效的方法就是实战,这两篇文章写了做MFC加减乘除计算器的过程。
第一写前台MFC界面搭建,第二写后台计算原理及代码。
MFC编程参考教程:http://www.jizhuomi.com/school/c/149.html
第二篇文章链接:C++做四则运算的MFC计算器(二)栈转换和计算后缀表达式
搭建MFC项目
以VS2017为例,新建项目->MFC项目,写名字,设路径
应用程序类型,选择基于对话框的,其他默认即可,直到最后一步
生成的类选择Dlg
完成后,项目里会有很多自动添加的资源
.ico是图标,随便玩。
.rc和.rc2:rc2文件包含项目使用的附加资源的脚本文件。可以在项目的 .rc 文件的顶部包括 .rc2 文件。 .rc2 文件用于存放由多个不同项目使用的资源。不必为不同的项目多次创建相同的资源,而是可以将它们放在一个 .rc2 文件中,然后将该 .rc2 文件包括在主 .rc 文件中。双击都会调到资源视图,在这编辑界面。
Dialog就是主要编辑的地方,ABOUTBOX是帮主窗口,MFCCALCULATION_DIALOG是主要窗口
那怎么加东西呢?在工具箱里,工具箱一般在侧面的一个犄角格拉里,竖着的,里面有各种组件,感兴趣的玩玩看。
此处用button按钮、Edit Control编辑框和static text静态文本就够了。
把button拖到界面上,再按Ctrl拖能复制,数字0-9、+、-、*、/、(、)、删除、清空和 =,19个按钮。用参考线(格式->参考线设置)布局更方便。
右键按钮->属性,显示控件的各种属性,其中Caption属性是按钮的内容,写“1”按钮就显示“1”,窗口的Caption就是窗口的标题。每个控件的ID属性是独立的,用默认生成的就行,也可以自己编写。
按钮事件
“删除”按钮点一次删除一个字符,“清空”按钮就是清空,其他按钮每点一次,表达式编辑框就加一个字符
先为编辑框创建“值”变量、“控件”变量来控制内容,简单地理解:“值”给“控件”就会显示。右键表达式编辑器->添加变量
“值”类别是编辑框要现实的内容,名称为editv。再以同方法建“控件”类别的变量editc。
计算结果框也要有“值”变量和“控件”变量,分别是resultv、resultc。
接下来为每个按钮单击时显示到编辑框中。
双击按钮,自动添加单击事件的函数,并跳转到MFCcalculationDlg.cpp,
使用UpdateData(false)将变量值给控件,要反过来把false改成true,这个后面会用到。为每个按钮添加对应的函数。
实现删除使用editv = editv.Left(editv.GetLength() - 1),Left(n)取左边n个字符,editv.GetLength()取editv的长度,长度-1就删掉最后一个。
实现清空使用editv = "";
“=”的功能是将控件的值传给变量,再调用其他计算函数计算,把计算结果传给另一个编辑框中。在这里先实现显示计算表达式。
调试结果是这个样子的: