Visual Studio 2022的MFC框架——应用程序向导

微软技术分享 微软技术分享 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022开发工具下的MFC框架知识。

MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用。注意,微软的目的是简化程序员的开发工作,这是关键,是简化,不是代替。利用这些类,可以有效地帮助程序员完成Windows应用程序的开发。

在Visual Studio2022里面,有一个叫做MFC应用程序向导的东西,MFC应用程序向导是一个辅助我们生成源代码的向导工具,它可以帮助我们自动生成基于MFC框架的源代码。在该向导的每一个步骤中,程序员都可以根据需要来选择各种特性,从而实现定制应用程序。下面我们就利用MFC应用程序向导来创建一个基于MFC的单文档界面(SDI)应用程序。

首先,打开Visual Studio2022主界面,如下图。

https://img-blog.csdnimg.cn/9e9d708fca2e47ab982e0ced281d23b7.jpeg

启动Visual Studio2022,单击【文件】菜单,选择【新建】→【项目】在出现的新建项目对话框中,在右侧窗口中选择“MFC应用程序”。

https://img-blog.csdnimg.cn/2aefcc96feb14951b3d86cc788992bdc.png

 项目名称为Mfc,解决方案的名称为MfcApp。

https://img-blog.csdnimg.cn/9849be8cc45e444ab528696df4e0b465.png

单击【创建】按钮,出现MFC应用程序类型选项设置对话框,在“应用程序类型”的下拉列表框中选择“单个文档”,在“项目样式”的下拉列表框中选择“MFCstandard”,其他保持默认选择。

https://img-blog.csdnimg.cn/03b8faeece074dd39d1f5bbbdfc7f818.png

单击【下一步】按钮,出现“文档模板属性”设置对话框,保持默认选择。

https://img-blog.csdnimg.cn/5432f68e34b04626b71c8fcaaf9bf9cf.png

 单击【下一步】按钮,出现“用户界面功能”设置对话框,保持默认选择。   

https://img-blog.csdnimg.cn/ba6dd96d6f984f469fdbb5cb1e8e5dee.png

单击【下一步】按钮,出现“高级功能”设置对话框,保持默认选择。

https://img-blog.csdnimg.cn/0560fe38f1384fe4b274e219c4a8df76.png

单击【下一步】按钮,出现“生成的类”设置对话框,保持默认选择。

https://img-blog.csdnimg.cn/f7b072b9ed6d4d3e9846d489044862ca.png

单击【完成】按钮, MFC应用程序向导就为我们创建了一个新的项目:Mfc。

https://img-blog.csdnimg.cn/776f7d4bc4be480c868b1071f08d874c.png

现在, 按下“Ctrl+F5”键编译并运行程序, 可以看到运行结果。

https://img-blog.csdnimg.cn/22e4498ee8f4495eb8c38f97b5cf1b32.png

在这个程序中,我们自己没有编写任何代码,就生成了一个带有标题栏,具有最小化框、最大化框、系统菜单和一个可调边框的应用程序。这个程序和我之前帖子中所创建的程序类似, 但多了菜单栏、工具栏及状态栏。这一切都是通过MFC应用程序向导生成的。

基于MFC的程序框架

MFC库是开发Windows应用程序的C++接口。MFC提供了面向对象的框架, 程序开发人员可以基于这一框架开发Windows应用, MFC采用面向对象设计, 将大部分的Windows API封装到C++类中, 以类成员函数的形式提供给程序开发人员调用。

我们看一下MFC应用程序向导帮助我们生成的这些代码。单击Visual Studiio菜单栏上的【视图】菜单,单击【类视图】菜单项,这将打开类视图子窗口,方便我们查看项目中的类组织结构。在“类图”中展开Mfc根节点,可以看到项目中所有的五个类。如果要查看某个类的成员信息,可以直接选中某个类,就会在下方的窗格中显示该类拥有的函数和属性。

https://img-blog.csdnimg.cn/6160fe549a1c4ffabd2cb559909de117.png

在MFC中, 类的命名都以字母“C”开头。对于一个单文档应用程序,即我们在创建项目时应用程序类型中选择的“单个文档” , 都有一个CMainFrame 类、一个以“C+项目名+App”为名字的类、一个以“C+项目名+Doc”为名字的类和一个以“C+项目名+View”为名字的类。

作为初学者,在刚接触MFC的程序时, 一定要逐步熟悉MFC应用程序向导所生成的这几个类, 以及类中的代码。这样才能在读代码时, 知道哪些类哪些代码是向导生成的,哪些类哪些代码不是自动生成的。

在类视图窗口中的类名上双击,在右边的代码编辑器窗口中就会打开定义该类的头文件。

https://img-blog.csdnimg.cn/61991312009e4a63809f4827c37d3a58.png

我们可以发现五个类都有一个基类, 例如, CMfcView派生于CView; CMainFrame 派生于CFrameWnd,这些基类都是MFC中的类, 可以查看一下这些基类的帮助信息。如果想查看某个类或函数的帮助,那么可以把当前光标放在该类或函数所在位置, 然后按F1键, 即可打开MSDN中的相应帮助。在MSDN帮助页中每个类的说明页底部都有一个“Hierarchy Chart”超链接, 单击此链接, 即可看到整个MFC类的组织结构图。  

下面的图是MFC类组织结构图。

1. 继承CObject的类

https://img-blog.csdnimg.cn/d7cbb42ceb8f42e18f9989ab50d553b6.png

2. 继承CCmdTarget的类

https://img-blog.csdnimg.cn/b00ea2f23da44ad79a18e8e2f8864b70.png

3. 继承CWnd的类

https://img-blog.csdnimg.cn/c896d013493049499450703d77e89091.png

4. 其它类

https://img-blog.csdnimg.cn/39c8d2a7982a48bbabca584e72a2ce53.png

5. 层次结构图类别

 

https://img-blog.csdnimg.cn/caeeefc8798b453dafa2770170c82b12.png

从上面图中可以发现CFrameWnd是由CWnd派生的。另外,也可以发现从CWnd派生的还有CView 类。这就说明这个程序中的CMainFrame类和CMfcView类追本溯源有一个共同的基类:CWnd类。 CWnd类是MFC中一个非常重要的类,它封装了与窗口相关的操作。


文章来源: https://blog.csdn.net/wang2015cn/article/details/132070117
版权声明: 本文为博主原创文章,遵循CC 4.0 BY-SA 知识共享协议,转载请附上原文出处链接和本声明。


...全文

相关推荐

VS2022-MFC编程入门

VS2022-MFC编程入门

andg1110

【MFC实践】基于MFC向导C++制作计算器(附文件)

MFC(Microsoft Foundation Classes)向导是一套用于简化Windows应用程序开发的工具集。它建立在Microsoft Foundation Classes(MFC)之上,为开发人员提供了一种更直观、高效的方式来构建图形用户界面(GUI)应用程序。MFC向导通过提供可视化设计工具、代码生成器等功能,使得开发者能够更专注于业务逻辑的实现,而不必过多关注繁琐的界面布局和控件创建。

吴NDIR

VS2022的MFC框架[项目代码]

本文详细介绍了Visual Studio 2022中的MFC框架及其应用程序向导的使用方法。MFC(Microsoft Foundation Class)是微软提供的一套C++类库,旨在简化Windows应用程序的开发。文章通过创建一个基于MFC的单文档界面(SDI)应用程序,逐步展示了如何使用MFC应用程序向导生成源代码,并解释了生成的代码结构。此外,文章还探讨了MFC类的组织结构,强调了CWnd类的重要性,并提供了查看MFC类帮助信息的方法。作者荔园微风作为一名有25年经验的IT老兵,分享了其对MFC框架的深入理解和实践经验。

算法笑匠

CUDA+VS2022MFC程序示例

简单的MFC对话框调用CUDA函数的应用程序。推荐使用VS2022+CUDA11.6配置。

simple_whu

ObjectARX Wizards for AutoCAD 2022 and Visual Studio 2019

ObjectARX Wizards for AutoCAD 2022 and Visual Studio 2019

honeyatelier
评论
收藏 已收藏
分享
返回顶部
微软技术分享
微软技术分享 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
微软技术社区 8,662 成员 37,312 内容