网站大量收购独家精品文档,联系QQ:2885784924

vs2005MFC计算器制作技巧.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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

您可能关注的文档

文档评论(0)

4753333 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档