2024年5月11日发(作者:)

MFC 期末复习及答案

1 简述MFC 应用程序的执行过程。

2 简述文档/视图与其他类对象的关系。

3 简述MFC 消息映射机制。

4 消息WM_LBUTTONDOWN 的消息映射宏和消息处理函

数是什么?

5 如何自定义消息?如何发送自定义消息?

6 GDI 创建哪几种类型的图形输出?

7 什么是设备环境?它的主要功能有哪些?

8 什么是GDI,它有什么功能?

MFC 将GDI 函数封装在哪个类中?

9 请叙述设备无关性的含义,实现设备无关性需要哪

几个环节?

10 MFC 提供了哪几种设备环境类?它们各自有什么

用途?

11 简述传统的SDK 获取设备环境的方法。

12 简述创建和使用自定义画笔的步骤。

13 简述采用MFC 方法编程时,显示一个DDB 位图的

步骤。

14 简述菜单设计的主要步骤。

15 为应用程序创建快捷菜单主要有哪些方法?

16 如何动态创建菜单?

17 创建工具栏的基本步骤有哪些?

18 简述MFC 创建状态栏所做的工作。

19 简述创建和使用模态对话框的主要步骤。

20 如何向对话框模板资源添加控件?如何添加与控

件关联的成员变量?

21 什么是DDX 和DDV?

编程时如何使用MFC 提供的DDX 功能?

22 简述创建属性页对话框的主要步骤。

23 在应用程序中访问控件的方法有哪些?

24 单选按钮控件如何成组?

25 组合框与列表框相比有什么不同?如何给组合框

添加初始的列表项?

26 通过哪几个主要成员函数完成文档与视图之间的

相互作用?并简述这些成员函数的功能。

27 简述文档序列化与一般文件处理的区别。

28. 如何让用户定义的类支持序列化?

1 简述MFC 应用程序的执行过程。

MFC 应用程序启动时,首先创建应用程序对象

theApp。这时将自动调用应用程序类的构造函数初

始化对象theApp,然后由应用程序框架调用MFC 提

供的WinMain( )主函数。在WinMain( )主函数中,

首先通过调用全局函数GetApp( )来获取theApp 的

指针pApp,然后通过该指针调用theApp 的成员函

数InitInstance( )来初始化应用程序。在应用程

序的初始化过程中,同时还构造了文档模板,产生

最初的文档、视图和主框架窗口,并生成工具栏和

状态栏。当InitInstance( )函数执行完毕后,

WinMain( )函数将调用成员函数 Run( ),进入消

息处理循环,直到函数Run( )收到WM_QUIT 消息。

MFC 首先调用CWinApp 类的成员函数

ExitInstance( ),然后调用静态对象的析构函数,

包括CWinApp 对象,最后退出应用程序,将控制权

交给操作系统。

在初始化的最后,应用程序将收到WM_PAINT 消息,

框架会自动调用视图类的OnDraw()函数绘制程序

客户区窗口。这时,应用程序的基本窗口已经生成,

应用程序准备接收系统或用户的消息,以便完成用

户需要的功能。如果消息队列中有消息且不是

WM_QUIT 消息,则将消息分发给窗口函数,以便通

过MFC 消息映射宏调用指定对象的消息处理函数。

如果消息队列中没有消息,函数Run( )就调用函数

OnIdle( )进行空闲时间的处理。

2 简述文档/视图与其他类对象的关系。

在MFC 应用程序中,文档类和视图类是用户最常用的

两个类,它们之间是密切相关的。文档/视图体系

结构是MFC 应用程序框架结构的基石,它定义了一

种程序结构,这种结构利用文档对象保存应用程序

的数据,依靠视图对象控制视图显示数据,文档与

视图的关系是一对多的关系,也就是说,文档中的

数据可以以不同的方式显示。MFC 在类CDocument

和CView 中为文档和视图提供了基础结构。

CWinApp、CFrameWnd 和其他类与CDocument 和

CView 共同把所有的程序片段连在一起。文档/视图

与其他类对象的关系如下图所示。

应用程序对象

文档模板对象

文档对象

视图对象 框架窗口对象