《面向对象程序设计》习题答案-6+8章
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题6
6-1 填空题
(1) API是应用程序编程接口Application Programming
Interface的缩写。它是大量函数加上数字常量、宏、结构、类型以及其他相关项的集合。
(2) Windows系统也叫做事件驱动的系统。当用户按下一个
键、移动鼠标或单击鼠标按钮时,计算机通知Windows系统已经发生了一个事件,以及事件的种类、发生的时间、发生的位置。
(3) Windows提供了许多种类型的句柄,每种对象都有一个相
应的句柄类型,例如HDC、HFONT、HWND和HMENU 分别是设备环境、字体、窗口和菜单的句柄。
6-2 简答题
(3) Windows应用程序中的消息传递是如何进行的?
由Windows以及由其他应用程序向用户的应用程序发送的全部消息都储存在消息队列中,等待调用。SDK程序以消息循环调用Windows消息,如下代码表示此循环一直运行到程序接受终止执行消息才停止。MSG Msg;
…
while (GetMessage(&Msg,NULL,0,0))
{ TranslateMessage(&Msg);
DispatchMessage(&Msg); }
在While循环内部,由循环的每次迭代调用Windows API函数GetMessage(&Msg,NULL,0,0)以得到消息队列中的下一个消息,并把它存在特定的MSG结构体变量Msg中。TranslateMessage(&Msg)实现键盘上某个键的翻译。DispatchMessage(&Msg)函数向窗口的消息处理函数发送消息,调用相应的消息处理函数。完成后进入下一个循环
6-2 简答题
(5) 一个Windows应用程序的最基本构成应包括哪些部
分?
1.Windows应用程序由WinMain函数和WndProc窗口处理函数构成
基本框架。
2.WinMain函数是所有Windows程序的入口,其功能包含窗口类的
定义和注册,窗口的创建和显示,并产生消息循环。
3.WndProc窗口处理函数定义了应用程序对收到的不同消息的响应
,其中包含了应用程序对各种可能接收到的消息的处理过程,是消息处理分支控制语句的集合。
习题8
8-1 填空题
(1) 应用程序框架包含用于生成应用程序所必须的各种面向
对象组件的集合。在VC++中,MFC 能方便地生成应用程序框架,然后可以在此基础上进行进一步的编程工作。
(2) VC++环境下的项目工作区是一个项目管理工具,它将项
目的信息分类,以视图形式向用户提供工作区、项目和类信息三个方面信息。
8-2 简答题
(2) 当用应用程序向导生成MFC应用程序时,在源代码中
找不到WinMain()函数,这是为什么?
CWinApp和CFrameWnd分别替代了WinMain和WndProc两个函数的功能。
•CWinApp类封装了与应用程序有关的程序启动、消息循环启动和程序结束等功能
•CFrameWnd封装窗口创建、消息处理和窗口销毁等功能MFC应用程序中都以一个公有的AfxWinMain()函数作为程序的入口,此函数存储在VC安装目录…\Microsoft Visual
Studio\VC98\MFC\SRC的WINMAIN.CPP文件中。
8-2 简答题
(3) 使用MFC AppWizard生成一个简单的SDI应用程序,分析AppWizard创建了哪些类和文件?
应用程序框架类CMainFrame、应用程序类、文档类、视图类和关于帮助类。这五个类之间的通讯和数据交换是通过相互调用公开成员函数和发送消息来完成的。
1.应用程序类:负责程序的初始化、运行以及结束处理;
2.主窗口类:负责主窗口的创建、显示和搜索用户命令以及消息派发;
3.文档类:负责应用程序文档的装载和维护,文档是应用程序需要保存的
任何内容;
4.视图类:负责为文档提供一个或几个视图,视图的作用是为显示和修改
文档提供人机界面。
类名称基类类声明文件类实现文件
CMymfcApp CMainFrame CMymfcDoc CMymfcView CWinApp
CFrameWnd
CDocument
CView
Mymfc.h
MainFrm.h
MymfcDoc.h
MymfcView.h
Mymfc.cpp
MainFrm.cpp
MymfcDoc.cpp
MymfcView.cpp
8-2 简答题
(5) 简述MFC应用程序的启动流程。
MFC应用程序从theApp开始启动:
1.构建theApp全局对象
2.操作系统加载Afx WinMain函数,启动应用程序
3.创建窗口,启动消息循环
4.当接收WM_QUIT消息时,窗口消逝,程序退出
其中WinMain()的执行过程是:调用应用程序对象的InitInstance成员函数来初始化应用程序,然后调用它的Run()成员函数来处理应用程序的消息循环。当程序运行结束时,Run()调用应用程序的ExitInstance成员函数来做一些清除工作。
8-2 简答题
(6) 什么是消息映射?MFC应用程序的消息映射的作用是
什么?
消息映射是将从消息队列中获取到的消息映射到相应的消息处理函数的方法。
作用:消息映射使得能按照已经规定好的路径搜索相应类的消息映射表,以便找到消息处理函数并执行。