MFC常用的类及其成员函数简介.docx 下载本文

内容发布更新时间 : 2024/11/5 21:34:51星期一 下面是文章的全部内容请认真阅读。

MFC常用类及其成员函数 CRuntimeClass 结构

在CRuntimcClass结构中定义了类名、对象所占存储空间的大小、类的版本 号等成员变量及动态创建对象、派生关系判断等成员函数。每一个从CObject 类派牛的类都有一个CRuntimeClass结构同它关联,以便完成在运行时得到对象 的信息或基类的信息。

要使用CRuntimeClass结构,必须结合使用RUNTTME_CLASS()宏和其他有关 运行时类型识别的MFC宏。

CCmdTarget 类

(1) 消息发送

MFC应用程序为每个CCmdTarget派牛类创建一个称为消息映射表的静态数 据结构,可将消息映射到对彖所对应的消息处理函数上。

(2) 设置光标

BeginWaitCursor ()将光标改为沙漏形状; EndWa i tCursor 0

将光标改回到之前的形状;

RestoreWai tCursor ()用于将光标还原为等待状态。

(3) 支持自动化

CCmdTarget类支持程序通过COM接口进行交互操作,自动翻译COM接口的 方法。 CWinThread 类

由CCmdTarget派生,主要工作是创建和处理消息循环。

CWinApp 类 从 CWinThrcad 类派生,成员函数 InitApplication()、Initlnstancc()、 Run () o

在InitlnstanceO函数中,创建了一个单文档模板类或多文档模板类 (CDocTemplate)的对象,并且在文档模板的构造函数中,系统定义的宏 RUNTIME.CLASS创建了文档类对象 框架窗口类对彖和视图类对象

在MFC应用程序屮有且仅有一个CWinApp派生类的对彖,代表程序运行的主

线程,代表应用程序本身。

CWnd 类 由CCmdTargct类直接派生,是MFC中最基本的GUI对彖。公共变量m_hWnd 用于存放供API函数调用的窗口句柄。

CframeWnd 类

从CWnd类派生而来,主要用来掌管一个窗口。其对象是一个框架窗口,包 括边界、标题栏、菜单、最大化按钮、最小化按钮和一个激活的视图。常用成员 函数:

GetActiveDocument(): 得到当前文档的指针。 GetActiveViewO : SetActi veViewO : GetTitleO : SetTitle (): SetMessageText(): 得到当前视图的指针。 激活一个视图。 得到框架窗口的标题。 设置框架窗口的标题。 设置状态栏文本。 CDocument 类

从CCmdTarget派牛,作为用户文档的基类,代表了用户存储或打开一个文 件。主要功能是把对数据的处理从对用户的界面处理中分离出来,同时提供一个 与视图类交互的接口。常用的成员函数有:

OnNewDocument(): OnOpenDocument(): OnCloseDocument(): OnSavcDocumcnt(): UpdateAllViewO : SaveModified (): CView 类 建立新文档。 打开一个文档。 关闭文档。 保存文档。 通知所有视图文档被修改。 设置文档修改标志。 从CWnd类派牛而来,是MFC视图类和用户视图类的基类。

CWnd: : Tnval idate ()或 CWnd: : Tnval idateRect ()可以刷新视图。常用函数

有:

视图类对象访问文档类对象中的数据 GetDocument (): 的.

OnDraw (): 针参数, 这个函数有一个指向CDC类的指 通过它可能肓接调用 CDC类上显示数据和图形. 在应用程序窗口出现 在及大小发生变化时, 系统将自动调用 OnDraw函数

OnlnitialUpdate (): 作一些初始化工作. 程序员的主要工作

(1) 重写WinApp派生类的虚函数Initlnstance.在这个函数中,按自己的需要创 建和显不窗口.

(2) 在CDocument的派生类中,声明程序所需的数据和对这些数据进行必要操作 的接口函数.

(3) 在CViwe类的派生类中编写处理消息的代码?如果在消息处理中需要文档的 数据,应该调用该类的成员函数GetDocument来获取文档对象,然后通过文档对 象的接口函数对文档中的数据进行操作.

(4) 在CViwe类的派生类中的OnDraw函数中编写窗口重绘吋的代码.

Gilbert觉得以上是很大的类, 下面介绍一些小类: CRect 类 矩形类,扌用有四个成员变量:top, left, bottom, righto分别表是左上角 和右下角的坐标。可以通过以下的方法构造:

CRect ( int 1, int t, int r, int b );指明四个坐标 CRect ( const RECT& srcRect );由 RECT 结构构造 CRect ( LPCRECT IpSrcRect );由 RECT 结构构造

CRect ( POINT point, SIZE size );有左上角坐标和尺寸构造 CRect ( POINT topLeft, POINT bottomRight );有两点坐标构造