CDocument, CView, CFrameWnd, CWinApp, CDocTemplate 这五个框架类在MFC文档/视图结构程序中的角色

本文主要是介绍CDocument, CView, CFrameWnd, CWinApp, CDocTemplate 这五个框架类在MFC文档/视图结构程序中的角色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说明CDocument, CView, CFrameWnd, CWinApp, CDocTemplate 这五个框架类在MFC文档/视图结构程序中各自扮演

 

1 CWinApp拥有一个对象指针:CDocManager* m_pDocManager


2 CDocManager拥有一个指针链表CPtrList m_templateList,用来维护一系列的Docment Template。一个程序若支持两“种”文件类型,就应该有两份Document Templates,应用程序应该在CMyWinApp::InitInstance中以AddDocTemplate将这些Document Template加入到CDocManager所维护的链表之中。


3 CDocTemplate 拥有三个成员变量,分别持有Document 、View、Frame 的CRumtimeClass 指针,另有一个成员变量m_nIDResource,用来表示此Document显现时应该采用的UI 对象。这四份资料应该在CMyWinApp::InitInstance 函数构造CDocTemplate(注1)时指定之,成为构造式的参数。当使用者欲打开一
份文件(通常是借着【File/Open】或【File/New】命令项),CDocTemplate 即可藉由Document/View/Frame 之CRuntimeClass 指针(注2)进行动态生成。


4 CDocument 有一个成员变量CDocTemplate* m_pDocTemplate,回指其Document Template;另有一个成员变量CPtrList m_viewList,表示它可以同时维护一系列的Views。


5 CFrameWnd 有一个成员变量CView* m_pViewActive ,指向目前正作用中的View 。


6 CView 有一个成员变量CDocument* m_pDocument,指向相关的Document。

这篇关于CDocument, CView, CFrameWnd, CWinApp, CDocTemplate 这五个框架类在MFC文档/视图结构程序中的角色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126373

相关文章

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization