MFC课后简答题(1~11章)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1、什么是Windows SDK程序?
使用SDK开发出来的Windows应用程序,叫做Windows SDK程序
2、什么是Windows API函数?
为了设计Windows 应用程序,Windows 提供了大量预定义的用C语言编写的函数
3、查看windows.h文件,说明Windows系统的句柄的类型。
整型
4、窗口句柄、当前程序应用实例句柄、设备环境句柄
5、什么是事件?试举例说明。
能触发程序作出相应反映的刺激叫做事件,例如在键盘上按下一个键
6、如何显示和更新窗口?
调用函数ShowWindow显示窗口,调用函数UpdateWindow更新窗口
7、什么是消息循环?
在创建了窗口的应用程序中,应用程序将要不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列中获取消息,这个不断重复的工作过程叫做消息循环
8、Windows应用程序的主函数有哪3个主要任务?
注册窗口类、创建应用程序的窗口和建立消息循环
(注:如果题目问有哪2个主要任务,应该答后两个)
9、说明Windows应用程序的主函数,窗口函数与Windows系统之间的关系。
主函数和窗口函数都是Windows系统调用的函数;
主函数是应用程序启动后,系统首先调用的函数;
窗口函数是主函数在消息循环中获得消息并把消息发送给系统之后,由系统调用函数。
第二章
1、在窗口类CFrameWnd中需要封装哪些成员?
窗口句柄,窗口类的定义,注册窗口类,创建窗口和显示更新窗口
(注:对应书上P16 //窗体类的声明这一段代码)
2、应用程序类CWinApp应该具备哪些主要功能?
注册、创建、显示应用程序的窗口;建立消息循环
3、在MFC程序设计中,如果要建立拥有自己的风格的主窗口,应该重写什么函数?
在CWinApp的派生类中重写InitInstance函数
4、什么是消息映射表?
在MFC中,能够根据消息取得消息处理函数的表,叫做消息映射表。(我自己概括的)
////消息映射就是消息与消息处理函数一对一的联系
第三章
1、CObject is the principal base class for the MFC Library. (最“基”的一个类)
2、功能:
CObject类:为其派生类提供了支持序列化、调试信息、运行期类型消息等一些通用功能。
CCmdTArget类:支持消息处理。
CWnd类:为所有子窗口类提供通用属性和方法。
CFrameWnd类:创建应用程序主窗口。
CWinApp类:把程序的主函数体作为一个对象来处理。
继承关系:
3、
文档类CDocument:它的对象存储和管理应用程序的数据。
视图类CView:它的主要作用是为框架窗口提供用户区显示数据以及接受应用程序用户对程序的操作,从而实现应用程序与用户的交互。
框架窗口类CFrameWnd:创建应用程序窗口。
应用程序类CWinApp:作为上述各类对象的容器,并实现应用程序的初始化及执行消息循环的工作。
4、在文档/视图结构的应用程序中,视图类的对象是如何来获取文档类对象中的数据的?
视图类的对象是通过成员函数GetDocument来访问文档类对象中的数据的。
第四章
1、为什么要使用DC ?
为了屏蔽硬件输出设备的多样性(也可以答书上P56 第一句)
2、MFC中CDC的派生类有哪几个?试说出它们的作用。
CClientDC、CMetaFileDC、CPaintDC、CWindowDC,作用P57 表4-3的说明
3、如何把绘图工具载入设备描述环境?
创建绘图工具的对象之后,使用CDC类的成员函数SelectObject把绘图工具载入DC
第五章
(略过)
第六章
1、应用程序的界面有哪3种方式?
单文单界面、多文档界面、基于对话框的界面
2、分别说明什么是SDI界面的程序和什么是MDI界面的程序。
SDI界面的程序:用户使用应用程序时,程序一次只能打开一个文档。
MDI界面的程序:应用程序具有一个主窗口,用户可以在这个主窗口中打开若干个显示不同文档的小窗口。
3、在MFC AppWizard-Setp 1 中
4、在应用程序框架类的PreCreateWindow函数中添加以下代码:
cs.cx = 200; //程序窗口的宽、高
cs.cy = 200;
cs.x = 400; //程序窗口的坐标位置
cs.y = 400;
5、
6、文档类的成员函数UpdateAllViews的作用是什么?
通知文档所对应的所有窗口同时进行重绘
7、为什么拆分窗口的显示更新必须要同步?
因为应用程序的所有拆分窗口显示的应该是同一个文档,所以当文档发生变化时,该文档所对应的窗口当然要同时更新显示以正确地反映文档的内容
8、什么是无效显示区?
在有效提高拆分窗口显示更新效率的方法中,程序只重绘必须重绘的区域。
9、让程序只重绘必须重绘的部分。
第七章
1、鼠标消息分为哪两类?它们之间有什么区别?
鼠标消息分为两类:客户区鼠标消息和非客户区鼠标消息。
区别:消息产生的区域不同。
2、书P104 表7-1
3、用手工方法在程序中添加非客户区鼠标消息的消息映射宏和对应的消息响应代码。
4、调用CWnd * SetCapture( )完成任务后及时调用ReleaseCapture()。
5、一般是屏幕上位置最靠前(被激活)的窗口才能接受键盘的消息。
6、方便程序设计。
Window中设备无关性:用户在编程实现时,使用逻辑设备名,从而实现逻辑设备到物理设备的转化,从而是用户独立于物理设备。
7、键盘消息分为:一般键盘消息、系统按键消息。Alt键、Shift键、F1~F12功能键、Tab键等。
8、标题栏显亮时具有输入焦点,变灰时失去输入焦点。
第八章
1、Windows应用程序中,什么样的数据称为资源?常用资源有哪些?
资源:在应用程序被启动后,它们一般仍驻留在硬盘上的可执行文件中,只有当程序需要它时,才从可执行文件中读取相应的数据。
常用的资源:菜单、加速键、图标、位图。
2、在Visual C++中,编辑资源数据可以使用哪两种方法?
使用文本编辑器或VC++的资源编辑器对资源进行编辑。