mfc常用类及其成员函数

### MFC常用类及其成员函数详解 #### 一、CRuntimeClass 结构 **CRuntimeClass** 是MFC中用于支持运行时类型信息的一个关键结构。它的主要作用是在运行时提供对象及其基类的信息。 - **成员变量**: - **lpName**:一个指向字符串的指针,表示类名。 - **nObjectSize**:对象所占用的字节数,即对象的大小。 - **nBaseSize**:基类所占用的字节数。 - **pBaseClass**:指向基类的 CRuntimeClass 指针。 - **nVersion**:类的版本号。 - **成员函数**: - **GetRuntimeClass()**:返回 CRuntimeClass 对象。 - **IsDerivedFrom()**:判断是否从特定的 CRuntimeClass 派生。 - **GetObjSize()**:返回对象的大小。 - **GetBaseClass()**:返回基类的 CRuntimeClass 指针。 - **使用方法**:为了使用 CRuntimeClass,需要使用 **RUNTIME_CLASS()** 宏和其他相关的宏,如 **DECLARE_DYNAMIC()** 和 **IMPLEMENT_DYNAMIC()** 来支持运行时类型识别。 #### 二、CCmdTarget 类 **CCmdTarget** 是一个非常重要的基础类,几乎所有MFC对象都直接或间接地从它派生。 - **消息发送**:MFC 应用程序为每个 CCmdTarget 的派生类创建一个消息映射表,通过这个表将接收到的消息映射到相应的消息处理函数。 - **设置光标**: - **BeginWaitCursor()**:将光标设置为等待状态(沙漏形状)。 - **EndWaitCursor()**:恢复光标到之前的状态。 - **RestoreWaitCursor()**:将光标恢复为等待状态,通常用于长时间操作前后的光标管理。 - **支持自动化**:CCmdTarget 支持通过 COM 接口与其他组件进行交互,并自动转换 COM 接口的方法调用。 #### 三、CWinThread 类 **CWinThread** 从 CCmdTarget 派生而来,主要用于创建和管理线程的消息循环。 - **主要职责**: - 创建消息队列。 - 处理消息循环。 - 控制线程的生命周期。 - **成员函数**: - **Run()**:执行线程的消息循环。 - **PostQuitMessage()**:向线程的消息队列发送退出消息。 - **Attach()** 和 **Detach()**:附加或脱离线程。 #### 四、CWinApp 类 **CWinApp** 是 CWinThread 的一个特例,代表应用程序主线程,是应用程序的入口点。 - **成员函数**: - **InitApplication()**:初始化应用程序资源,如注册窗口类。 - **InitInstance()**:创建并显示应用程序的主窗口,初始化其他实例相关的资源。 - **Run()**:启动消息循环。 - **文档模板**:在 **InitInstance()** 函数中创建文档模板类 (CDocTemplate) 的对象,通过文档模板创建文档类 (CDocument)、框架窗口类 (CFrameWnd) 和视图类 (CView) 的对象。 #### 五、CWnd 类 **CWnd** 类从 CCmdTarget 派生,是所有 Windows 控件和窗口的基类。 - **成员变量**: - **m_hWnd**:窗口句柄,用于调用 API 函数。 - **常用函数**: - **Create()**:创建窗口。 - **DestroyWindow()**:销毁窗口。 - **GetSafeHwnd()**:安全地获取窗口句柄。 #### 六、CFrameWnd 类 **CFrameWnd** 从 CWnd 派生,是一个框架窗口类,负责管理一个窗口。 - **常用成员函数**: - **GetActiveDocument()**:返回当前激活的文档指针。 - **GetActiveView()**:返回当前激活的视图指针。 - **SetActiveView()**:设置活动视图。 - **GetTitle()** 和 **SetTitle()**:获取或设置框架窗口的标题。 - **SetMessageText()**:设置状态栏上的文本信息。 #### 七、CDocument 类 **CDocument** 类是从 CCmdTarget 派生的,用于处理用户文档的数据。 - **常用成员函数**: - **OnNewDocument()**:创建一个新的文档。 - **OnOpenDocument()**:打开一个已存在的文档。 - **OnCloseDocument()**:关闭文档。 - **OnSaveDocument()**:保存文档。 - **UpdateAllView()**:更新所有相关视图。 - **SaveModified()**:设置文档修改标志。 #### 八、CView 类 **CView** 类从 CWnd 派生,是所有视图类的基类。 - **常用函数**: - **GetDocument()**:获取与视图关联的文档。 - **OnDraw()**:绘制视图的内容。 - **OnInitialUpdate()**:进行初始化操作。 #### 九、开发流程 - **重写 WinApp 派生类的 InitInstance()**:创建并显示窗口。 - **在 CDocument 的派生类中声明数据**:定义文档数据结构和操作方法。 - **在 CView 的派生类中处理消息**:编写消息处理代码。 - **在 CView 的派生类中 OnDraw() 绘制内容**:实现视图的重绘逻辑。 #### 十、CRect 类 **CRect** 是一个简单的矩形类,用于表示矩形区域。 - **成员变量**: - **top**, **left**, **bottom**, **right**:矩形的四个边界值。 - **成员函数**: - **IsEmpty()**:判断矩形是否为空。 - **IntersectRect()**:计算两个矩形的交集。 - **UnionRect()**:计算两个矩形的并集。 ### 总结 以上介绍了 MFC 中一些常用类及其成员函数的功能与使用方式。通过这些类,开发者能够构建复杂的应用程序界面,处理用户输入,并管理文档数据。掌握这些类的基本使用方法是学习 MFC 的关键步骤之一。















- hfwoaiwfy2012-09-12有很多常用的类都没有

- 粉丝: 45
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- UNET人脸嘴唇分割-毕业设计资源
- Mathematical_Contest_in_Modeling-美赛资源
- vcos_examples-智能车资源
- 蓝桥杯单片机真题代码-蓝桥杯资源
- 汇编语言-汇编语言资源
- J2Cache-Java资源
- JFinal-Python资源
- modelcontextprotocol_swift-sdk-Swift资源
- matlab-Matlab资源
- 2018 CCF大数据与计算智能大赛自动驾驶三维点云分割复赛第四方案
- Flet响应式行组件示例-图书管理系统响应式行布局自定义模板
- wukong-robot-机器人开发资源
- MXVideo-Kotlin资源
- nexfly-AI人工智能资源
- cpp-tbox-硬件开发资源
- 圣钰SAAS后台管理系统-当前系统只维护不升级.yubb-saas-pro商业版开发中-移动应用开发资源


