- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
较复杂的计算器的实现
系统的实现
4.1 窗体设计
利用MFC AppWinzard生成计算器应用程序框架具体步骤如下:
(1)执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFC AppWizard(exe)选项,然后在Project name文本框中输入Calculator 。Lacation文本框是指项目的本地路径。
(2)单击OK按钮,弹出MFC AppWinzard_Step1对话框。选中单选按钮,如图所示。
(3)单击Next按钮,弹出MFC AppWinzard_Step2 of4对话框,如图所示。
(4)单击Next按钮,弹出MFC AppWinzard_Step3 of4对话框,如图所示。
(5)单击Next按钮,弹出MFC AppWinzard_Step4 of4对话框,如图所示。单击Finish按钮,创建框架。
4.2 编辑资源
(1)编辑对话框及控件资源
利用Visual C++提供的资源编辑器对对话框资源进行编辑。删除对话框中默认的OK和Cancel按钮。添加一个Edit控件,其控件ID为IDC_DSPEDIT。添加若干按钮控件,其ID如表4-1所示。
表4-1 按钮控件资源清单
按钮名称 按钮ID 用途 0 BTN_0 按键0 1 BTN_1 按键1 2 BTN_2 按键2 3 BTN_3 按键3 4 BTN_4 按键4 5 BTN_5 按键5 6 BTN_6 按键6 7 BTN_7 按键7 8 BTN_8 按键8 9 BTN_9 按键9 。 BTN_10 小数点 = BTN_11 求值 + BTN_12 加号 - BTN_13 减号 * BTN_14 乘号 / BTN_15 除号 CE BTN_16 清屏 Sqrt BTN_17 开方 1/x BTN_18 倒数 sin BTN_19 正弦 cos BTN_20 余弦 tan BTN_21 正切 x^2 BTN_22 平方 x^3 BTN_23 立方 x^y BTN_24 以X为底的y次幂 exp BTN_25 以e为底的幂 ln BTN_26 以e为底的对数 log BTN_27 对数 -/+ BTN_29 正负号 10^x BTN_30 10的x次方 n! BTN_31 N的阶层 添加2个单选按钮,按钮资源清单如表4-2所示。
表4-2 单选按钮控件资源清单
控件名 设置ID DEGREE BTN_DEGREE RADIAN BTN_RAD 添加4个静态框,将编辑控件,普通计算,高级计算分别分组。其效果如图4.1所示。
图4.1编辑对话框资源
(2)编辑菜单资源
在Visual C++中的Workspace工具栏中,选中ResourceView选项卡。在其中的Menu项上右击,在弹出的快捷菜单中选择Insert命令,如图4.2所示。
图4.2添加菜单资源
将添加的菜单资源的ID更改为IDR_MENU。利用资源编辑器对菜单进行编辑,编辑后的菜单如图4.3所示。
图4.3 编辑菜单资源
4.3 实现高级按钮控件类
利用ClassWizard添加一个新类,如图4.4所示。
图4.4添加CAdvButton类
(1)添加成员变量和成员函数
为实现高级按钮控件对鼠标的移动和单击作出相应的颜色变化。首先在CAdvButton的头文件中加入几种预定义颜色,其代码如下:
#define DesiableColor RGB(192,192,192) //灰色, 按钮不可用
#define FocusColor RGB(255,0,0) //红色, 按钮拥有焦点
#define SelectColor RGB(0,255,0) //绿色, 按钮被按下
#define DefaultColor RGB(0,0,255) //蓝色, 默认
#define TextColor RGB(128,128,128) //浅灰色, 文本颜色
接下来,添加成员变量:
public:
CRect m_ClientRect; //用来保存按钮的客户的矩形区域
CRgn m_ClientRgn ; //用来保存按钮的客户区域,非矩形
UINT m_State; //按钮所处状态
CPoint m_Point; //当前鼠标位置
BOOL m_IsTimerOn; //标识计时器是否已经打开
利用ClassWizard添加消息映射和响应函数,如图4.5所示:
图4.5添加响应函数
再利用ClassWizard覆盖父类中的两个关键的虚函数:
//{{AFX_
您可能关注的文档
最近下载
- GB_T 3880.2-2024一般工业用铝及铝合金板、带材 第 2 部分力学性能.docx VIP
- 地铁全面节能改造技术方案(RT轨道苏州会议).pdf VIP
- 鼻部解剖及生理(共49张课件).pptx VIP
- 原发性醛固酮增多症诊断治疗的专家共识(2024)解读.pptx
- 工程装饰装修施工方案.docx VIP
- CECS-10-89埋地给水钢管道水泥砂浆衬里技术标准.pdf VIP
- 中国如何推进智慧消防稳定发展.doc VIP
- 岭南版上册二年级美术教案.doc VIP
- 2025 年重庆市高中数学联赛初赛试题及答案解析.docx VIP
- 《HarmonyOS鸿蒙应用开发》电子教案--项目2-01.doc VIP
原创力文档


文档评论(0)