MFC程序的结构包括两个面向应用的实体:文档和视图。
文档是应用程序中与用户交互的数据集合。
文档类是从MFC库中的CDocument类派生的,需要添加数据成员来存储应用程序需要的数据,还要添加成员函数来支持对数据的处理。
文档MFC支持单文档界面(Sigle Document Interface,SDI),每次只打开一直文档的程序。
MFC也支持多文档界面(Multiple Document Interface,MDI)。使用MDI,程序不仅能够打开类型相同的多个文档,还可以同时处理多个类型不同的文档,各个文档显示在自己的窗口中。
视图视图总是与特定的文档对象相关。
文档对象包含程序中的一组应用数据,而视图对象可以提供一种机制来显示文档中存储的部分或全部数据。
视图中从MFC类CView派生,就可以定义自己的视图类。
显示视图的窗口称为框架窗口。
文档对象可以拥有任意多个与其他相关的视图对象。
链接文档和视图 文档模板文档模板不仅管理程序中的文档对象,还管理与文档相关的窗口和视图。
应用程序中的每种文档类型都需要一个文档模板。
文档模板对象创建文档对象和框架窗口对象,而文档的视图由窗口窗口对象创建。
文档模板类MFC有2个文档模板类:
- CSingleDocTemplate类(用于SDI应用程序)
- CMultiDocTemplate来定于其文档模板(MDI应用程序)
创建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应用程序
范例
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)