windows程序开发实训报告

windows程序开发实训报告

ID:37899499

大小:447.50 KB

页数:11页

时间:2019-06-02

windows程序开发实训报告_第1页
windows程序开发实训报告_第2页
windows程序开发实训报告_第3页
windows程序开发实训报告_第4页
windows程序开发实训报告_第5页
资源描述:

《windows程序开发实训报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Windows程序开发实训报告姓名周鹤班级11软件1班学号100405121目录任务一:Windows消息循环机制及API程序设计实践一、实践目的二、任务概述三、windows消息循环四、学习收获任务二:基于MFC的对话框程序设计一、任务概述二、MFC消息映射三、计算器程序的设计思路四、遇到困难及解决五、关键代码六、运行情况七、收获任务三:基于MFC的单文档绘图程序设计一、任务概述二、模块设计及封装三、设计的优点四、程序风格五、运行情况六、使用方式七、困难及解决任务一:Windows消息循环机制及API程序设计实践一、实践目的通过实践充分理解Windows的消息循环

2、机制,了解Windows的API函数族的分类及大致功能,并在此基础上了解基本WindowsAPI方式开发的窗口程序的基本过程。任何框架开发环境归根结底都是对WindowsAPI函数的封装与调用。在利用一个框架环境开发Windows程序的过程中,应该明白所使用的框架模块调用了WindowsAPI中的那些功能函数。二、任务概述用visualC++开发一个Win32窗口程序,并实现如下功能:l实现菜单功能;l点击某两个菜单可在主窗口中显示或清除文字(文字内容不做要求);l点击某个菜单可弹出一个自定义的对话框(对话框中的元素不做要求),单击对话框中的“确定”或“取消”按钮,

3、可结束对话框。三、windows消息循环Windows多进程的窗口图形操作系统与DOS操作系统最大的区别就是:DOS采用顺序执行的过程,而Windows采用事件的消息驱动。用户进行的鼠标操作,键盘输入等操作和各个应用程序之间,应用程序和系统之间的操作都作为一个事件,产生消息,进入到指定的消息队列中,等待取出进行处理。这打破了顺序执行,而采用事件驱动的形式。四、学习收获1.了解了Windows的消息循环机制2.了解了一个窗口程序的生存的始末,从窗口类的定义,注册窗口类,创建窗口,到程序运行的消息循环的主函数。3.了解了句柄的概念,每个菜单项,窗口都有一个句柄作为自己的

4、标示,作为消息的一部分,告诉系统处理哪个窗口,菜单项的消息。4.了解了一些简单的API:CheckMenuItem,DialogBox等。5.了解了消息分类,处理消息的函数里,将消息分为了WM_COMMAND、WM_PAINT等分别处理窗口命令、窗口的绘制等消息。以及他们之间的关系。任务二:基于MFC的对话框程序设计一、任务概述用MFC开发一个计算器程序:l对话框类型的程序;l能够实现浮点数值的加减乘除运算;l界面由一个编辑框和若干按钮组成,编辑框负责表达按钮输入及计算的结果,按钮负责输入数字、加减乘除以及等于等动作的输入;l程序的核心功能由标准C++方式实现,并通

5、过MFC框架代码调用其功能;二、MFC消息映射方法:在MFC的类库中有些事继承了CCmdTarget类的类,这些类和消息有关,可以处理消息。然后为每一个能处理消息的类建立一个消息映射表,就像一张MessageMap,将消息和表格中的元素比较,然后调用对应的处理程序,这种操作就叫消息映射。其中消息映射表的建立使用了几个定义好的宏实现的。DECLARE_MESSAGE_MAP()BEGIN_MESSAGE_MAP(theClass,baseClass)ON_COMMAND(id,memberFxn)......END_MESSAGE_MAP()来实现对DECLARE_M

6、ESSAGE_MAP定义的结构体的填写。消息表条目就以ON_COMMAND(id,memberfxn)的格式宏定义不同类型的消息,其中对应消息的句柄,memberfxn表示消息引发的要处理的函数。将要实现的消息写在BEGIN_MESSAGE_MAP与END_MESSAGE_MAP之间。然后再编写消息实现的动作在对应的memberfxn函数中。优点:可以使代码更有条理,要实现的具体功能函数写在一个单独的函数中。三、计算器程序的设计思路1.确定实现计算功能类的具体结构,需要的成员变量,成员函数等2.在MFC中实现计算器程序的UI3.为UI中的按钮添加事件,并到调用C++

7、功能类中的函数。4.调试程序,修改BUG四、遇到困难及解决1.对于小数点等符号的处理,输入一个小数点后,不允许再输入,用了一个text1的标识符进行判断。2.其他符号的重复输入等。也是利用了定义的变量进行控制texti和text2进行对加减乘除和等号的控制。五、关键代码功能类声明的成员函数和属性内容,其中constr1constr2分别储存两个操作数,symb储存符号,result存结构。外部通过三个send开头的函数传递参数。Compute是计算函数,其中通过一个switch判断Symb是哪种类型,执行相应的计算语句。实现了UI上的即使更新。在输入符号时表示一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。