MFC:文档视图

MFC:文档视图,第1张

MFC程序的结构包括两个面向应用的实体:文档和视图。

文档是应用程序中与用户交互的数据集合。

文档类是从MFC库中的CDocument类派生的,需要添加数据成员来存储应用程序需要的数据,还要添加成员函数来支持对数据的处理。

文档

MFC支持单文档界面(Sigle Document Interface,SDI),每次只打开一直文档的程序。

MFC也支持多文档界面(Multiple Document Interface,MDI)。使用MDI,程序不仅能够打开类型相同的多个文档,还可以同时处理多个类型不同的文档,各个文档显示在自己的窗口中。

视图

视图总是与特定的文档对象相关。

文档对象包含程序中的一组应用数据,而视图对象可以提供一种机制来显示文档中存储的部分或全部数据。

视图中从MFC类CView派生,就可以定义自己的视图类。

显示视图的窗口称为框架窗口。

文档对象可以拥有任意多个与其他相关的视图对象。

链接文档和视图

文档模板

文档模板不仅管理程序中的文档对象,还管理与文档相关的窗口和视图。

应用程序中的每种文档类型都需要一个文档模板。

文档模板对象创建文档对象和框架窗口对象,而文档的视图由窗口窗口对象创建。

 文档模板类

MFC有2个文档模板类:

  • CSingleDocTemplate类(用于SDI应用程序)
  • CMultiDocTemplate来定于其文档模板(MDI应用程序)

应用程序和MFC



创建MFC应用程序 安装模板

36、VS2019创建MFC基础工程_Bao@Ting的博客-CSDN博客_vs2019mfc零、前言SDK:软件开发工具包,软件工程师为特定平台建立的软件开发工具集合。API : *** 作系统提供给应用程序编程的接口,C语言实现,其主要函数都在Windows.h头文件中进行了声明。Windows *** 作系统提供了1000多种API函数。窗口:Windows应用程序至少要有一个窗口。注:建议读者学习QT,由于学校课程的需要,我才学习的MFC,主要是应付考试。一、VS2019安装MFC支持二、...https://blog.csdn.net/BaoTTing/article/details/120716351

 

MFC 应用程序向导

MFC 应用程序向导 | Microsoft Docs

 应用程序类型

MFC 应用程序向导的应用程序类型 | Microsoft Docs

 

选项说明
单个文档为应用程序 (SDI) 体系结构创建单个文档界面,其中视图类基于 CView 类。 您可以在向导的 " MFC 应用程序向导 " 页的 "生成的类" 中更改视图的基类。 例如,若要创建基于窗体的应用程序,请对视图类使用 CFormView 类 。

在这种类型的应用程序中,文档的框架窗口只能保存一个文档。
多个文档为应用程序 (MDI) 体系结构创建多个文档接口,视图类基于 CView 该结构。 您可以在向导的 " 生成的类 " 页中更改视图的基类。 例如,若要创建基于窗体的应用程序,请对视图类使用 CFormView 。

在这种类型的应用程序中,文档的框架窗口可以容纳多个子窗口。
选项卡式文档将每个文档放置在单独的选项卡上。
基于对话框为应用程序创建一个基于对话框的架构,其中的对话框类基于 CDialog 该结构。 (若要创建 HTML 对话框,请选择 " 使用 html 对话" 框。 )
使用 HTML 对话框仅适用于对话框应用程序。 从 CDHtmlDialog 类 而不是 CDialog 类派生对话框类。 如果选中此框, CDHtmlDialog 则将在向导的 "生成的类" "MFC 应用程序向导" 页的 "基类" 框中列出。

"派生的" 对话框显示基于 HTML 的对话框,将 CDHtmlDialog 数据与 html 控件交换并处理 html 事件。
多个顶级文档为应用程序创建多个顶级体系结构,其中,视图类基于 CView 。

在这种类型的应用程序中,当用户在 "文件" 菜单上单击 "新建 (" 或 "新帧) " 时,应用程序将创建一个其父项隐式桌面的窗口。 新文档框架显示在任务栏中,并不局限于应用程序窗口的工作区。
  • 程序类型
单个文档
多个文档
基于对话框
多个顶层文档

 应用程序类型选项 

  •  选项卡式文档(仅对程序类型=多个文档有效)

勾选
不勾选
  •  文档/视图结构支持(除对程序类型=基于对话框有效)
勾选
不勾选
  •  基于对话框的选项 (仅对程序类型=基于对话框有效)
使用HTML对话框
无增强的MFC空间
 复合文档支持 
  • 容器:实现容器

  • 服务器:实现服务器

选项说明
指示不支持对象链接和嵌入 OLE (OLE) 。 默认情况下,应用程序向导会创建一个不支持ActiveX应用程序。
容器包含链接对象和嵌入对象。
微型服务器指示应用程序可以创建和管理复合文档对象。 请注意,微型服务器不能独立运行,并且仅支持嵌入项。
完整服务器指示应用程序可以创建和管理复合文档对象。 完整服务器能够独立运行,并支持链接项和嵌入项。
容器/完整服务器指示应用程序可以是容器和服务器。 容器是一个应用程序,可以将嵌入或链接的项合并到其自己的文档中。 服务器是可以创建供容器应用程序使用的自动化项的应用程序。
 文档支持选项 

指示应用程序是否支持活动文档。 有关 此功能的信息 ,请参阅活动文档。

选项说明
活动文档服务器指示应用程序可以创建和管理活动文档。 如果选择此选项,则必须在向导的"文档模板字符串"页的"文件扩展名"框中为活动文档服务器指定文件扩展名。 有关详细信息 ,请参阅活动 文档服务器。
活动文档容器指示应用程序可在其框架中包含活动文档。 活动文档可能包括(例如Internet Explorer文档)或Office文档(如Microsoft Word或Excel电子表格)。 有关详细信息 ,请参阅活动 文档包含。
对复合文件的支持请勿使用复合文件格式序列化容器应用程序的文档。 此选项强制将包含 对象的整个文件加载到内存中。 无法对单个对象进行增量保存。 如果更改了一个对象并随后保存,则保存文件内的所有对象。

Project 样式

指示应用程序是否具有标准 MFC、文件资源管理器、Visual Studio 或 Office 体系结构和显示。 有关详细信息,请参阅 Explorer-Style MFC 应用程序创建文件。

选项说明
MFC standard提供标准 MFC 应用程序体系结构。
Windows Explorer使用拆分窗口实现文件资源管理器类似的应用程序,其中左窗格是CTreeView 类,右窗格是CListView 类。
Visual Studio实现一个类似于 Visual Studio 的应用程序,该应用程序包含四个可停靠的窗格 (文件视图、类视图、属性和输出) 派生自CDockablePane 类和从CMDIFrameWndEx 类派生的主框架窗口 (默认的) 。
Office实现一个类似于 Office 的应用程序,该应用程序包含从CMFCRibbonBar 类派生的功能区、从CMFCOutlookBar 类派生的 Outlook 栏、从CMFCCaptionBar 类派生的标题栏和派生自CMDIFrameWndEx 类的主帧。
视觉样式和颜色

确定应用程序的视觉样式。 可以使用以下选项:

  • Windows 本机/默认值

  • Office 2003

  • Visual Studio 2005

  • Office 2007 (蓝色主题)

  • Office 2007 (黑色主题)

  • Office 2007 (银色主题)

  • Office 2007 (浅绿主题)

启用视觉样式切换

指定用户是否可以在运行时更改应用程序的视觉样式,通常通过从菜单或功能区中选择相应的视觉样式来更改。

MFC 的使用

指定如何链接到 MFC 库。 默认情况下,MFC 链接为共享 DLL。

选项说明
在共享 DLL 中使用 MFC将 MFC 库作为共享 DLL 链接到应用程序。 应用程序会在运行时调用 MFC 库。 此选项减少了包含使用 MFC 库的多个可执行文件的应用程序的磁盘和内存要求。 Win32 应用程序和 MFC 应用程序都可以调用 DLL 中的函数 (默认值)
在静态库中使用 MFC生成时将应用程序链接到静态 MFC 库。

文档模板属性

MFC 应用程序向导 | Microsoft Docs

在 MFC 应用程序向导的此页中,提供或优化以下选项来帮助进行文档管理和本地化。 文档模板字符串适用于在应用程序类型中包含文档/视图体系结构支持的应用程序。 它们对于对话框不可用。 由于大多数文档模板字符串都是由应用程序的用户显示和使用的,因此它们被本地化到向导的 "应用程序类型" 页中指定的资源语言。

  • 非本地化字符串

    适用于创建用户文档的应用程序。 如果提供文件扩展名和文件类型 ID,用户可以更轻松地打开、打印和保存文档。 这些项未本地化,因为它们由系统使用,而不是由用户使用。

    选项说明
    文件扩展名设置在使用应用程序时与用户保存的文档关联的文件扩展名。 例如,如果项目命名为小组件,则可以将文件扩展名 wgt。 (输入文件扩展名时,请不要包含句点. )
    如果提供文件扩展名,则当用户在打印机图标上删除文档图标时,资源管理器可以打印应用程序的文档,而无需启动应用程序。
    如果未指定扩展名,则用户必须在保存文件时指定文件扩展名。 向导不提供默认文件扩展名。
    文件类型 ID在系统注册表中设置文档类型的标签。
  • 本地化字符串

    生成与应用程序用户读取和使用的应用程序和文档关联的字符串,因此这些字符串是本地化的。

    选项说明
    语言指示为 本地化字符串下的所有框显示字符串的语言。 若要更改此框中的值,请在 "MFC 应用程序向导" 的 "应用程序类型" 页中,选择 "资源语言" 下的相应语言。
    主框架标题设置显示在主应用程序框架顶部的文本。 默认情况下,项目名称。
    文档类型名称标识可用于对应用程序的文档进行分组的文档的类型。 默认情况下,项目名称。 更改默认值不会更改此对话框中的任何其他选项。
    筛选器名称设置用户可以指示的用于查找文件类型文件的名称。 此选项可从 "标准 Windows"打开"和"另存为"对话框中的"文件类型"和"另存为类型"选项中获取。 默认情况下,项目名称加上文件,后跟在 " 文件扩展名" 中提供的扩展。 例如,如果项目命名为小组件,文件扩展名为 wgt,则默认情况下, 筛选器名称 为小组件文件 ( *. wgt) 。
    文件新短名称如果有多个新的文档模板,则设置 "标准 Windows新建" 对话框中显示的名称。 如果你的应用程序是 自动化服务器,此名称将用作自动化对象的短名称。 默认情况下,项目名称。
    文件类型长名称在系统注册表中设置文件类型名称。 如果你的应用程序是自动化服务器,此名称将用作自动化对象的长名称。 默认情况下,项目名称加上。文档.
用户界面功能

MFC 应用程序向导的用户界面功能 | Microsoft Docs

  • 主框架样式

    设置应用程序主窗口框架的功能。

    选项说明
    粗框架创建具有大小调整边框的窗口。 默认值。
    "最小化"框在主框架窗口中包含最小化框。 默认值。
    最大化框在主框架窗口中包括最大化框。 默认值。
    最小化以图标打开主框架窗口。
    最大化打开显示的完整大小的主框架窗口。
    系统菜单在主框架窗口中包括系统菜单。 默认值。
    "关于"框包括 应用程序的"关于 "框。 用户可以从应用程序的"帮助"菜单访问 此 框。 默认且不可更改,除非在 "应用程序类型, MFC 应用程序向导"页中选择"基于对话框"。

    注意 通常,"不可用"选项指示向导不会将该选项应用于项目,而不管是否选中或清除了不可用项的复选框。 在这种情况下,向导始终向项目添加 " 关于"框,除非你首先将项目指定为基于对话框,然后取消选中该框。
    初始状态栏向应用程序添加状态栏。 状态栏包含键盘的 CAPS LOCK、NUM LOCK 和 SCROLL LOCK 键的自动指示器,以及显示菜单命令和工具栏按钮的帮助字符串的消息行。 单击此选项还会添加菜单命令以显示或隐藏状态栏。 默认情况下,应用程序具有状态栏。 不适用于基于对话框的应用程序类型。
    拆分窗口提供拆分条。 拆分器栏拆分应用程序的主视图。 在多文档界面 (MDI) 应用程序中,MDI 子框架的客户端窗口是拆分器窗口,在单个文档界面 (SDI) 应用程序和多个顶级文档应用程序中,主框架的客户端窗口是拆分器窗口。 不适用于基于对话框的应用程序类型。
  • 子框架样式

    指定应用程序中子帧的外观和初始状态。 子框架样式仅适用于 MDI 应用程序。

    选项说明
    子最小化框指定默认情况下,子窗口是否具有 (最小化按钮) 。
    子最大化框指定子窗口是否默认启用了最大化 (按钮) 。
    最大化的子级指定在 的 PreCreateWindow 成员函数中设置 cs.style 标志,WS_MAXIMIZE窗口最初是否最大化 CChildFrame
  • 命令栏 (菜单/工具栏/功能区)

    指示应用程序是否包括菜单、工具栏和/或功能区。 不适用于基于对话框的应用程序。

    选项说明
    使用经典菜单指定应用程序包含一个经典、不可拖动的菜单。
    使用经典停靠工具栏将标准Windows工具栏添加到应用程序。 工具栏包含用于创建新文档的按钮;打开和保存文档文件;剪切复制、粘贴或打印文本;并进入帮助模式。 启用此选项还会添加菜单命令以显示或隐藏工具栏。
    使用浏览器样式工具栏将Internet Explorer样式的工具栏添加到应用程序。
    使用菜单栏和工具栏指示应用程序包含可拖动菜单栏和工具栏。
    用户定义的工具栏和图像允许用户在运行时自定义工具栏和工具栏图像。
    个性化菜单行为指定菜单是打开时包含项的完整列表,还是仅包含用户最常使用的命令。
    使用功能区在Office使用类似 2007 的功能区,而不是菜单栏或工具栏。
  • 对话框标题

    仅 对于基于 CDialog 类的应用程序,此标题将显示在对话框的标题栏中。 若要编辑此字段,必须先选择"应用程序类型 "下的" 基于对话框 "选项。 有关详细信息,请参阅应用程序 类型,MFC 应用程序向导。

高级功能

MFC 应用程序向导的高级功能 | Microsoft Docs

本主题列出了应用程序的附加功能选项,如帮助、打印支持等。 在每个部分中,指定这些高级功能的附加支持。

  • 上下文相关帮助 (HTML)

    为上下文相关的帮助生成一组帮助文件,使用 F1 和"帮助"菜单或单击对话框中的"帮助"按钮即可。 帮助支持需要帮助编译器。 如果没有帮助编译器,可以通过运行安装程序来安装它。

    有关详细信息 ,请参阅 HTML 帮助:Context-Sensitive 程序和帮助文件 (HTML 帮助 ) 帮助。

  • 打印和打印预览

    通过从 MFC 库调用 CView 类 中的成员函数,生成代码来处理打印、打印设置和打印预览命令。 该向导也会向应用程序的菜单添加这些函数的命令。 打印支持仅适用于在向导的"应用程序类型,MFC 应用程序向导"页中指定文档/视图体系结构支持的应用程序。 默认情况下,文档/视图应用程序具有打印支持。

  • 自动化

    指定应用程序可以处理在另一个应用程序中实现的对象,或者向自动化客户端公开应用程序。

  • ActiveX 控件

    支持 ActiveX 控件(默认值)。 如果不选择此选项,并且以后想要将 ActiveX 控件插入到项目中,则必须在应用程序的 CWinApp::InitInstance 成员函数中添加对 AfxEnableControlContainer 的调用。

  • MAPI (消息传送 API)

    指定应用程序可以创建、 *** 作、传输和存储邮件。

  • Windows套接字

    支持 Windows 套接字,可以使用这些套接字编写通过 TCP/IP 网络进行通信的应用程序。

  • Active Accessibility

    向 CWnd 派生类添加了对 IAccessible 的支持,可用于自定义用户界面,以更好地与辅助功能客户端交互。

  • 公共控件清单

    默认情况下启用。 生成应用程序清单以启用 Microsoft Windows XP 或更新版本 *** 作系统附带的公共控件 DLL。

    第 6 版公共控件 DLL 不自动更新现有应用程序所使用的早期版本的公共控件。 若要使用第 6 版公共控件 DLL,你必须创建一个指示应用程序加载 DLL 的应用程序清单。 此公共控件 DLL 还支持 Windows XP 主题。

    应用程序清单还可指定应用程序需要的其他 DLL 和版本。 有关应用程序清单的信息,请参阅应用程序 SDK 中的独立应用程序和并行Windows程序集。

  • 支持重新启动管理器

    添加了对重启Windows的支持。 此视频演示如何从 MFC 使用重启管理器 :如何:使用新的重启管理器。

  • 高级框架窗格

    选项说明
    资源管理器停靠窗格创建一个停靠窗格,该窗格Visual Studio解决方案资源管理器框架窗口左侧的停靠窗格。
    输出停靠框架创建一个停靠窗格,该窗格类似于Visual Studio框架窗口下的"输出"窗格。
    属性停靠窗格创建与主框架窗口Visual Studio"属性"窗格类似的停靠窗格。
    导航窗格在主框架窗口的左侧创建一个类似于 Outlook 导航栏的停靠窗格。
    标题栏在主框架窗口的上方创建一个 Office 样式的标题栏。
  • 最近文件列表上的文件数

    指定要在最近使用的列表中列出的文件数。 默认数是 4。

生成的类

MFC 应用程序向导的生成的类 | Microsoft Docs

  • 生成的类

    为项目创建的类的名称。 默认情况下,这些名称基于项目名称。 默认 MFC 项目创建一个 CProjName视图类、一个 cProjName应用类、一个 cProjNameDoc 类、一个 CMainFrame 类和一个 CChildFrame 类。 此页上的所有其他值都包含有关 " 生成的类 " 列表中当前选定的类的信息。

    若要更改类名称,请使用 " 类名称 " 文本框。

  • 类名

    当前在 " 生成的类 " 列表中选择的类的名称。 如果该框处于活动状态,则可以更改类名称。 当您从 " 类名 " 框中更改焦点时,所选类名的任何更改都会出现在 " 生成的类 " 列表中。

  • .h 文件

    当前在 " 生成的类 " 列表中选择的类的标头文件的名称。 如果文本框处于活动状态,则可以更改标头文件的名称。

  • 基类

    生成的类列表中当前选定类的基类的名称。 如果该框处于活动状态,您可以从列表中选择基类的另一个类。

  • .cpp 文件

    与选定类关联的源代码文件的名称。 如果文本框处于活动状态,则可以更改实现文件的名称。

  • MFC 应用程序向导生成的类

    • 项目的视图类派生自 类CView。

    • 项目的应用程序类派生自 CWinAppEx 类。

    • 项目的文档类派生自 类CDocument。

    • 项目的主框架类派生自 CMDIFrameWndEx 类。

    • 项目的子框架类派生自 类CMDIChildWndEx。


 

SDI应用程序

范例

 

 

 

 

 

 

 中间的选项可以根据自己的要求修改。


MDI应用程序

范例

 

 

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1325981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存