vsMFC计算器制作.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《vsMFC计算器制作.doc》由会员分享,可在线阅读,更多相关《vsMFC计算器制作.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、制作计算器本文采用动态创建控件的方法,使用 vs2019 MFC,仿照windows自带的计算器进行制作。通过这个程序可以使你了解:1如何使用文本框、按钮2如何通过控件的ID获取控件指针3得到控件指针后可以对控件做些什么4字符串如何处理(拼接、查找、转换等)5如何给控件绑定响应事件6如何重载原有的函数7其他自己体会界面分析:不要上面的菜单栏,也不要第一排的按钮,这些按钮都不要,只要一个文本框和下面右图中的按钮,布局方式也按照这个图布局。仔细数一数,共有23个按钮和一个编辑框。功能分析:用一下windows的计算器,可以发现:1. 初始状态为02. 如果按下数字键,这个0就会变成相应的数字,如果
2、按下小数点,就会变为“0.”3. 除数不能为04. 连续按下多个运算符,以最后一个计算符为准5. 每次按下运算符都会把之前的结果先经行计算,例如:你已经输入了 1+ 1 此时再按下 “+”,就会先把1+1进行计算,保存结果2.6. 这个计算器分两行显示,上面一行显示算式,下面显示结果.7. 当你输入一个数字和一个运算符就按下“=”时,第二个数默认和第一个相同,例如:“3*”按下“=”,显示“9”8. 开平方不能是负数9. 其它异常暂不处理新建项目这里我给项目命名为:Calculator应用程序的类型选择 基于对话框,点击完成完成之后,先来观察一下项目中都有哪些东西:资源视图(下面右图)是我们的
3、界面,解决方案中的是我们的源文件(下面左图)。我们的代码主要写在和中,.h文件中主要定义一些东西,.cpp文件中写具体的东西。准备知识初始界面打开界面,可以看到,上面已经给我们放上去了两个按钮确定和取消。由于我们建立的是对话框应用程序,这两个按钮的功能就是接受Enter键和ESC键的响应。先不要删除它,不然会造成不必要的麻烦:例如如果你删除了这两个按钮,当你在界面上按下回车时,程序找不到响应的控件,就会导致异常。添加编辑框在工具箱中找到编辑框控件,把它拖放到界面合适的位置,并在属性栏中把它的ID改为TEXTC,便于记忆,这个编辑框的作用就是显示数字。有的资料会给这个编辑框关联一个值,用于处理编
4、辑框中内容,在这里,我们就不给他关联值,要想给编辑框显示一个值或者是获取文本框中的值,通过代码去实现。包括后面按钮的处理,我们都尽量通过代码去实现它的功能。至此,一行代码还没有写,先运行一下看看(如下图),如果你在文本框中按下回车键或者ESC键,就会发现程序会直接退出。这是因为“确定”按钮响应回车事件,“取消”按钮响应ESC键,如果不想退出,可以重载这两个按钮的响应事件,也可以屏蔽键盘的输入,这里暂不处理。(换句话说,如果不建立对话框应用程序,不就可以了吗?没办法暂时先学一学这个吧),如果觉着两个按钮很碍眼,可以把他们隐藏掉:把这两个按钮的Visible属性改为false即可。设置编辑框可以换
5、行,有三个属性要更改;Auto HScroll 设置为 FalseMultiLine 设置为 TrueWant Return 设置为 True代码写法:CEdit* pEdit = (CEdit*)GetDlgItem(TEXTC); /断言,判断是不是pEdit(类似if语句) ASSERT(pEdit & pEdit-GetSafeHwnd(); /pEdit-SetSel(-1); /追加模式 pEdit-ReplaceSel(_T(第一行rn第二行); 或者SetDlgItemText(TEXTC,_T(ArnB); rn就是换行符GetDlgItem 这个方法很有用,要注意!读/写编
6、辑框中内容编辑框已经添加上去,那么怎样使用这个编辑框呢?主要就是怎样获取它里面的内容或者让它显示指定的内容。主要使用到两个函数:读取控件中的内容:写入控件内容:nID:控件的ID,也可以使控件的名字rString:保存到的字符串(即:将控件上的文本获取到rString中)lpszString:要显示出来的字符串。需要注意的是这个参数是LPCTSTR类型,不是CString类型,在使用的过程中要进行转换:(LPCTSTR)str怎样在编辑框后面追加内容,不删除之前的内容呢?后面会讲到。在界面上添加按钮定义你可以一个一个按钮拖放上去,但这里我使用的是通过代码进行创建。根据开始时候的分析,共需要23
7、个按钮,于是我们需要定义一个长度为23的按钮数组,为了便于更改,这里定义一个常量NUM,表示23. 如下:public: static const int NUM = 23;public: CButton *p_ButtonNUM ;除此之外,为了便于写代码,再定义一个函数,用了创建按钮,如下:public: CButton* NewMyButton(LPCTSTR m_Caption,int nID,CRect rect);LPCTSTR m_Caption:m_Caption是按钮上显示的文字,LPCTSTR是参数类型int nID:是按钮的ID号CRect rect:rect是按钮的左上
8、角坐标和大小,原型顺便再定义几个变量,后面写代码要用到:CString equation ;/算式CString inputNum ;/输入的数字CString op;/运算符double result;/计算结果double number;/输入的数字前面说过,定义是放在“.h”文件中的,打开文件,写在里面就可以了。写完之后先运行一下试试看,如果没有报错,就说明你写对了,如果报错,就这几行定义你也能写错?!接下来进入主题:初始化在窗体初始化的时候,就应该把按钮添加上去。打开文件,在里面找到BOOL CCalculatorDlg:OnInitDialog() 这个函数,这就是初始化的函数,要不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vsMFC 计算器 制作
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内