MFC复习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

名词解释

1.事件:能触发程序做出相应反应的因素或动作叫做“事件”

2、句柄:用来区分普通变量的标识的标识叫做句柄

3、消息:为了描述事件的各种信息而定义的一个结叫做消息

4、Windows的API函数:由操作系统提供的,用户可以使用的函数叫做API函数

5、Windows SDK程序:直接使用API函数开发程序的早期Windows应用程序的开发工具

6、资源:用不同方式制作和保存的数据叫做资源

7、图象设备接口(GDI):用于改变DC属性的操作,即与绘图相关的操作制作成的函数的

集合。

8、控件CDC类:把DC和GDI函数封装到一起形成的类叫做控件CDC类

9、消息循环:在创建了窗口的应用程序中,应用程序将不断地从消息队列中获取消息,并

将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列获取消

息,这个不断重复的工作过程叫做消息循环。

10、无效显示区:无效显示区一般定义为窗口用户区上的一个矩形区域,这个区域应覆盖所有因文档发生变化而需要重绘的部分。当程序需要重新绘制一个图形时,只要重新绘制该矩形内部的图形就可以了。

11、控件:为了实现应用程序与用户之间的交互,Windows允许在应用程序的界面上放置诸

如命令按钮、文本框、滚动条等一些图形部件,因为这些部件可以用来处理用户事件,并使应用做出相应的反应,所以这些图形部件通常叫做控件。

12、类信息表:类中存放了类信息的一个CruntimeClass结构类型数据。其中的主要内容为

类名称和指向对象构建函数的指针,建立该表的目的就是为了能在运行期根据类名称调用构建函数来动态创建对象。

简答题

1.位图的主要步骤:

1)用位图类来定义一个对象(Bitmap)

2)把位图资源载入位图对象3)获取位图信息

4)把位图选入内存设备环境5)显示位图

2.利用AppWizard生成默认的SDI应用程序My时,向导自动生成的哪四个类?及其相应

的功能。

CMainFrame(构建应用程序,显示窗架)CMyApp(整个应用程序)CMyDoc(管理数据)CMyView(显示数据)

3.创建窗口的五个步骤:1)定义窗口2)注册窗口

3)创建窗口4)显示窗口5)消息循环

4.简述从Cdocument类派生自己需要的文档类的一般步骤。

1)以CDocument为基类,派生出一个类2)在此类中添加数据成员和成员函数

3)在构造函数中进行初始化数据成员4)在实现部分编写对应的成员函数

5.以鼠标消息WM_MOUSEMOVE为例,写出在MFC编程中,为视图CJKXView手工添

加消息响应函数的步骤与相关代码。

1)在类CJKXView的头文件中添加声明消息响应函数,代码为:afx_msg void OnMOUSEMOVE(UINT flags,CPonint point);

2)在现实文件BEGIN_MESSAGE_MAP与END_MESSAGE_MAP( )之间添加消息映射表ON_WM_MOUSEMOVE( )

3)添加消息响应函数void CMyview::Onmousemove(UINT flags,CPoint point);

6.在MFC中创建和使用模式对话框的主要步骤有哪些?

1)使用对话框编辑器创建对话框资源;

2)对于输入型对话框:创建对话框类,添加类的控件变量,添加并编写消息处理函数,然后在应用程序的某个类的需要处使用该对话框——使用步骤包括:创建该

对话框类的对象;初始化该对话框的控件变量;用成员函数DoModal打开对话

框;在用户按“确定”(IDOK)键关闭对话框后,通过对话框类的控件变量获取

用户的输入和选择。

3)对于操作型对话框:在用户对话框类的重写型消息响应函数OnInitDialog中,对对话框中的控件做初始化设置;添加并编写消息处理函数;最后是接受用户的

输入。

{或者是1)在资源编辑器中创建对话框的资源2)以CDialog为基类做一个对话框类的一个派生类3)在使用对话框的类中把创建类的dddd.h头文件包含在内}

填空题:

1.GetMessage( )被用来从消息队列获取消息,

2.函数TranslateMessage( )用来把键盘消息转换为字符消息,函数DispatchMessage( )用来向系统派送消息。

3.GetDocument( )函数是指向文档对象指针。

4.工作线程和用户界面线程的区别:是否拥有界面。

5.打开数据库的两种方式:dynaset和snapshot(使用CRecordset对象对数据源进行操作)。

6.UpdateData函数为真时:控件将向对应成员变量写入数据;为假时:控件将从对应成员变量读取数据。

编程题:

1、为学员信息设计一个类CWorker,包含:编号、姓名、出生日期、家庭住址、手机号,并使该类可以实现串行化。请写出可以实现要求的CWorker.h和CWorker.cpp文件的内容。//CWorker.h

class CWorker:public CObject {

public:

CString Num;// char Num[10];

CString Name;

CTime Birth;

CString Address;

CString Tel;

DECLARE_SERIAL(CWorker) // 使对象可串行化

virtual void Serialize( CArchive & ar ); //重载串行化函数

CWorker(){。。。。。}

};

//CWorker.cpp

MPLEMENT_SERIAL(CWorker,CObject,0)

void CWorker::Serialize(CArchive & ar)

{ CObject::Serialize(ar);

if ( ar.IsStoring() )

{ ar<

}

else

{ ar>>Num>>Name>> Birth >>Address>>Tel;

}

}附加题(可供参考)

1、Windows API中API的英文全文为 application programming interface ,中文译文是应用程序接口。

相关文档
最新文档