- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
制作计算器 本文采用动态创建控件的方法,使用 vs2005 MFC,仿照windows自带的计算器进行制作。 通过这个程序可以使你了解:1?如何使用文本框、按钮2?如何通过控件的ID获取控件指针3?得到控件指针后可以对控件做些什么4?字符串如何处理(拼接、查找、转换等)5?如何给控件绑定响应事件6?如何重载原有的函数7?其他自己体会 界面分析:不要上面的菜单栏,也不要第一排的按钮,这些按钮都不要,只要一个文本框和下面右图中的按钮,布局方式也按照这个图布局。仔细数一数,共有23个按钮和一个编辑框。 功能分析: 用一下windows的计算器,可以发现: 初始状态为0 如果按下数字键,这个0就会变成相应的数字,如果按下小数点,就会变为“0.” 除数不能为0 连续按下多个运算符,以最后一个计算符为准 每次按下运算符都会把之前的结果先经行计算,例如:你已经输入了 1+ 1 此时再按下 “+”,就会先把1+1进行计算,保存结果2. 这个计算器分两行显示,上面一行显示算式,下面显示结果. 当你输入一个数字和一个运算符就按下“=”时,第二个数默认和第一个相同,例如:“3*”按下“=”,显示“9” 开平方不能是负数 其它异常暂不处理 新建项目 这里我给项目命名为:Calculator 应用程序的类型选择 基于对话框,点击完成 完成之后,先来观察一下项目中都有哪些东西:资源视图(下面右图)是我们的界面,解决方案中的是我们的源文件(下面左图)。我们的代码主要写在和中,.h文件中主要定义一些东西,.cpp文件中写具体的东西。 准备知识 初始界面 打开界面,可以看到,上面已经给我们放上去了两个按钮—确定和取消。由于我们建立的是对话框应用程序,这两个按钮的功能就是接受Enter键和ESC键的响应。先不要删除它,不然会造成不必要的麻烦:例如如果你删除了这两个按钮,当你在界面上按下回车时,程序找不到响应的控件,就会导致异常。 添加编辑框 在工具箱中找到编辑框控件,把它拖放到界面合适的位置,并在属性栏中把它的ID改为TEXTC,便于记忆,,这个编辑框的作用就是显示数字。 有的资料会给这个编辑框关联一个值,用于处理编辑框中内容,在这里,我们就不给他关联值,要想给编辑框显示一个值或者是获取文本框中的值,通过代码去实现。包括后面按钮的处理,我们都尽量通过代码去实现它的功能。 至此,一行代码还没有写,先运行一下看看(如下图),如果你在文本框中按下回车键或者ESC键,就会发现程序会直接退出。这是因为“确定”按钮响应回车事件,“取消”按钮响应ESC键,如果不想退出,可以重载这两个按钮的响应事件,也可以屏蔽键盘的输入,这里暂不处理。(换句话说,如果不建立对话框应用程序,不就可以了吗?没办法暂时先学一学这个吧),如果觉着两个按钮很碍眼,可以把他们隐藏掉:把这两个按钮的Visible属性改为false即可。 设置编辑框可以换行,有三个属性要更改; Auto HScroll 设置为 False MultiLine ?设置为 True Want Return 设置为 True CEdit* pEdit = (CEdit*)GetDlgItem(TEXTC); //断言,判断是不是pEdit(类似if语句) ASSERT(pEdit pEdit-GetSafeHwnd()); //pEdit-SetSel(-1); //追加模式 pEdit-ReplaceSel(_T(第一行\r\n第二行)); 或者 SetDlgItemText(TEXTC,_T(A\r\nB)); \r\n就是换行符 GetDlgItem 这个方法很有用,要注意! 读/写编辑框中内容 编辑框已经添加上去,那么怎样使用这个编辑框呢?主要就是怎样获取它里面的内容或者让它显示指定的内容。主要使用到两个函数: 读取控件中的内容: 写入控件内容: nID:控件的ID,也可以使控件的名字 rString:保存到的字符串(即:将控件上的文本获取到rString中) lpszString:要显示出来的字符串。需要注意的是这个参数是LPCTSTR类型,不是CString类型,在使用的过程中要进行转换:(LPCTSTR)str 怎样在编辑框后面追加内容,不删除之前的内容呢?后面会讲到。 在界面上添加按钮 定义 你可以一个一个按钮拖放上去,但这里我使用的是通过代码进行创建。 根据开始时候的分析,共需要23个按钮,于是我们需要定义一个长度为23的按钮数组,为了便于更改,这里定义一个常量NUM,表示23. 如下: public: static const int NUM = 23; public: CButton *p_Butto
您可能关注的文档
最近下载
- 《活着读后感》课件.pptx VIP
- 活着读后感课件.docx VIP
- 企业数字化转型大数据湖一体化运营管理平台建设方案.docx VIP
- 企业大数据湖总体规划及大数据湖一体化运营管理建设方案.pdf VIP
- 鄂尔多斯市东胜区殡仪馆项目环境影响报告表环评报告.pdf
- 社会研究:设计与写作教学课件-第十二章 实例解析.pptx VIP
- 社会研究:设计与写作教学课件-第十一章 论文写作(下):结果、讨论、参考文献.pptx VIP
- 社会研究:设计与写作教学课件-第十章 论文写作(中):文献回顾、研究方法.pptx VIP
- 腾讯云原生湖仓一体技术在大规模数据场景中的应用实践.pdf VIP
- 腾讯数据湖技术分享专场.docx VIP
文档评论(0)