VS之MFC入门到精通教程155全数.docx

上传人:b****1 文档编号:12711927 上传时间:2023-04-21 格式:DOCX 页数:152 大小:112.84KB
下载 相关 举报
VS之MFC入门到精通教程155全数.docx_第1页
第1页 / 共152页
VS之MFC入门到精通教程155全数.docx_第2页
第2页 / 共152页
VS之MFC入门到精通教程155全数.docx_第3页
第3页 / 共152页
VS之MFC入门到精通教程155全数.docx_第4页
第4页 / 共152页
VS之MFC入门到精通教程155全数.docx_第5页
第5页 / 共152页
点击查看更多>>
下载资源
资源描述

VS之MFC入门到精通教程155全数.docx

《VS之MFC入门到精通教程155全数.docx》由会员分享,可在线阅读,更多相关《VS之MFC入门到精通教程155全数.docx(152页珍藏版)》请在冰豆网上搜索。

VS之MFC入门到精通教程155全数.docx

VS之MFC入门到精通教程155全数

VS2021/MFC编程入门教程之目录

第一部份:

VS2021/MFC开发环境

第二部份:

VS2021-MFC应用程序框架

第三部份:

对话框

第四部份:

常常利用控件

第五部份:

菜单、工具栏与状态栏

第六部份:

文档、视图和框架

第七部份:

MFC常常利用类

第八部份:

字体和文本输出

第九部份:

图形图像

第十部份:

Ribbon界面开发

VS2021/MFC编程入门之前言

       鸡啄米的C++系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了必然的了解了。

可是教程中讲的例子只是一个个简单的例程,并无可视化窗口。

鸡啄米在这套VS2021/MFC编程入门教程中将会给大家讲解如何利用VS2021进行可视化编程,也就是基于窗口的程序。

      C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在利用VC++编程时不至于丈二僧人摸不着头脑。

本套教程也会涉及到VC++的原理性的东西,一样更重视实用性,让大家学完本套教程以后,大体的界面程序都能很容易编写出来。

       VC++简介

      VC++全称是VisualC++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台。

VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包括在VisualStudio中。

VisualStudio包括了VB、VC++、C#等编译环境。

固然咱们在利用VC++的时候为了轻便,老是只单独安装VC++。

但自微软2021年发布Visual以来,微软成立了在.NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++一样被扩展为支持代码托管机制的开发环境,所以.NETFramework是必需的,也就再也不有VC++的独立安装程序,不过可以在安装VisualStudio时只选择VC++进行安装。

      VC++版本的选择:

VS2021

      因为VC++以后的版本再也不有独立的安装程序,所以鸡啄米在教程中将不会称VC++以后的版本为VC++等等,而是用VC++所属的VisualStudio的版本名称代替,比如VS2021。

      近些年VC++主要的版本包括:

VC++、VS2021、VS200五、VS2021和。

      VC++占用的系统资源比较少,打动工程、编译运行都比较快,所以博得很多软件开发者的青睐。

但因为它先于C++标准推出,所以对C++标准的支持不太好。

举个例子:

      for(inti=0;i<5;i++)

      {

               a[i]=i;

       }

      for语句中声明的变量i,对于VC++来讲,出了for循环仍能利用。

但很显然这与C++标准对于变量的规定不符合。

      随着VC++版本的更新,对C++标准的支持愈来愈好,对各类技术的支持也愈来愈完善。

但同时新版本所需的资源也愈来愈多,对处置器和内存的要求愈来愈高。

到VS2021,光安装文件就2G多,安装后的文件占3G多空间,其运行也常常受处置器和内存等性能的限制。

但鸡啄米仍是推荐大家利用VS2021,毕竟它是最新版本,类库和开发技术都是最完善的,本教程也将利用VS2021为大家做例程的演示。

固然若是系统配置确实比较低,可以选择VS2021,VS2021和VS2021相较仍是要轻量级一些的。

VC++已通过时,奉劝大家尽可能别用了。

      VC++与MFC

      讲VC++免不了要提MFC,MFC全称MicrosoftFoundationClasses,也就是微软基础类库。

它是VC++的核心,是C++与WindowsAPI的结合,很完全的用C++封装了WindowsSDK(SoftwareDevelopmentKit,软件开发工具包)中的结构和功能,还提供了一个应用程序框架,此应用程序框架为软件开发者完成了一些例行化的工作,比如各类窗口、工具栏、菜单的生成和管理等,不需要开发者再去解决那些很复杂很乏味的难题,比如每一个窗口都要利用WindowsAPI注册、生成与管理。

这样就大大减少了软件开发者的工作量,提高了开发效率。

       固然VC++不是只能够创建MFC应用程序,一样也能够进行WindowsSDK编程,可是那样的话就舍弃了VC++的核心,放弃了VC++最壮大的部份。

MFC也不是只能用于VC++中,它一样也可以用在BorlandC++等编译器中,固然没有几个人这样做。

      本节旨在让大家对VC++、VS2021和MFC有大体的概念上的熟悉,后面鸡啄米会带大家进入VS2021/MFC的世界,让大家轻松的开发各类包括窗口、图形等的可视化程序。

VS2021/MFC编程入门之一(VS2021与MSDN安装进程图解)

       上一讲中鸡啄米对VC++和MFC做了一些简单介绍。

在本套教程中鸡啄米将利用VS2021为大家讲解如何利用VC++和MFC进行编程,所以首先要安装VS2021。

       一.下载VS2021

       首先咱们需要下载VS2021,大家可以在网上下载VS2021破解正式版,建议选择英文版,养成利用英文工具的习惯。

鸡啄米利用VS2021旗舰试用版为例介绍安装进程,旗舰试用版官方下载地址为:

正式版的安装进程与试用版类似。

      二.安装VS2021

      下载后进行安装。

安装方式与一般的iso文件一样,可以利用虚拟光驱软件DaemonTools安装,也可以将其解压后点击进行安装。

      鸡啄米为了让大家更直观的看到安装进程,我将在自己机子上再从头安装一次,并截图为大家讲解。

      这里利用DaemonTools安装VS2021。

首先打开DaemonTools,屏幕右下角会出现托盘图标,在图标上点右键,会弹出菜单,再把鼠标移到菜单项“虚拟设备”上,然后再移到子菜单项“设备0:

[L:

]无媒体”上,最后点击下一级子菜单项“装载映像”,弹出对话框选择文件。

      这样虚拟光驱就会打开此iso文件,弹出自动安装的提示,选择“运行”就可以够了,若是没有弹出提示就通过资源管理器进入虚拟光驱,用安装。

接着会弹出下面的对话框:

      固然选择“InstallMicrosoftVisualStudio2021”进入下一步,加载安装组件后如下显示:

    点“Next”后:

        选择“Ihavereadandacceptthelicenseterms”后点“Next”弹出对话框:

       此处是让咱们选择要安装的功能,有两种:

Full(完全)和Custom(自概念)。

Full选项表示安装所有编程语言和工具,Custom选择表示可以自概念要安装的编程语言和工具。

右边可以更改安装路径,鸡啄米建议不要安装到C盘,因为它占用的空间比较大。

鸡啄米安装到了D盘,利用Full完全安装。

若是选择Custom安装,点“Next”则出现如下画面:

      大家可以按照自己的需要取消某些语言或工具的安装,比如不想安装VisualC#,取消选择它就可以够了。

若是感觉以后都有可能会用到,那就像鸡啄米一样选择完全安装吧。

      Full或Custom方式和安装路径设置好后,点“Install”进行安装:

        可能正式版的安装文件在安装进程中会有重启进程。

鸡啄米利用的试用版中间并无重启。

安装完成:

        若是要继续安装MSDN,先不要卸载虚拟光驱映像。

        三.安装MSDN

        咱们利用VS2021进行软件开发一样离不开帮忙文档,即MSDN。

在本地安装MSDN的方式如下:

        在开始菜单的“所有程序”->“MicrosoftVisualStudio2021”->“VisualStudioTools”下选择“ManageHelpSettings-ENU”:

        弹出对话框:

         可以将帮忙库存在默许路径,也可以修改寄放路径。

鸡啄米利用默许路径,点“OK”出现:

        选择“InstallContentFromDisk”后弹出对话框选择帮忙所在文件,这时需要在加载了VS2021的虚拟光驱中找,选择图中所示路径:

        点OK后出现如下对话框,可以点“Add”选择要添加的帮忙库,鸡啄米全数添加了。

        点“Update”进行安装,等待其完成绩可以了。

        利用MSDN时点击开始菜单的“所有程序”->“MicrosoftVisualStudio2021”->“MicrosoftVisualStudio2021Documentation”即可。

        到此VS2021和MSDN的安装进程就结束了。

以后就可以够正式利用VS2021进行软件开发了。

至于在鸡啄米的C++编程入门系列中已经介绍过,大家可以看看。

VS2021/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)

      解决方案与工程

     鸡啄米在中已经讲了解决方案与工程的概念,这里再重提一下。

每一个应用程序都作为一个工程来处置,它包括了头文件、源文件和资源文件等,这些文件通过工程集中管理。

在VS2021中,工程都是在解决方案管理之下的。

一个解决方案可以管理多个工程,可以把解决方案理解为多个有关系或没有关系的工程的集合。

VS2010提供了一个SolutionExplorer解决方案阅读器视图,可以显示当前解决方案的内容,当新建一个工程时可以选择新建一个解决方案仍是加入当前解决方案。

      下图左侧面板中正在显示的视图就是SolutionExplorer,视图中有一个解决方案-HelloWorld,此解决方案下有一个同名的工程-HelloWorld。

      在应用程序向导生成应用程序后,VS2021会在用户设置的路径下,以解决方案名为名称成立一个目录,里面寄放自动生成的文件。

     利用VS2021应用程序向导生成单文档应用程序框架

     鸡啄米这里简略演示下如何生成单文档应用程序框架,让大家先有个直观的了解,有不睬解的地方可以留着以后回来再看。

下面依照操作步骤一步步讲解:

     1.点菜单栏File->New->Project,弹出NewProject对话框,咱们可以选择工程类型。

      若是安装完VS2021以后第一启动时已经设置为VC++,则InstalledTemplates->VisualC++项会默许展开,而如果没有设置VC++,则可以展开到InstalledTemplates->OtherLanguages->VisualC++项。

因为咱们要生成的是MFC程序,所以在“VisualC++”下选择“MFC”,对话框中间区域会出现三个选项:

MFCActiveXControl、MFCApplication和MFCDLL。

MFCActiveXControl用来生成MFCActiveX控件程序。

MFCApplication用来生成MFC应用程序。

MFCDLL用来生成MFC动态链接库程序。

固然我们要选择MFCApplication。

     在对话框下部有Name、Location和Solutionname三个设置项。

意义如下:

Name--工程名,Location--解决方案路径,Solutionname--解决方案名称。

这里Name咱们设为“HelloWorld”,Location设置为“桌面”的路径,Solutionname默许和Name一样,固然可以修改成其他名字,这里我们不作修改,也利用“HelloWorld”。

点“OK”按钮。

     2.这时会弹出“MFCApplicationWizard”对话框,上部写有“WelcometotheMFCApplicationWizard”,下面显示了当前工程的默许设置。

第一条“Tabbedmultipledocumentinterface(MDI)”是说此工程是多文档应用程序。

若是这时直接点下面的“Finish”按钮,可生成具有上面列出设置的多文档程序。

但咱们此例是要成立单文档应用程序,所以点“Next”按钮再继续设置吧。

     3.接下来弹出的对话框上部写有“ApplicationType”,固然是让选择应用程序类型,咱们看到有四种类型:

Singledocument(单文档)、Multipledocuments(多文档)、Dialogbased(基于对话框)和Multipletop-leveldocuments。

我们选择Singledocument类型,以生成一个单文档应用程序框架。

单文档应用程序运行时是一个单窗口界面。

      此对话框的“Resourcelanguage”还提供语言的选择,这里默许选择英语。

“Projectstyle”可选择工程风格,咱们选择默认的“VisualStudio”风格。

“UseofMFC”有两个选项:

UseMFCinasharedDLL(动态链接库方式利用MFC)和UseMFCinastaticlibrary(静态库方式使用MFC)。

选择UseMFCinasharedDLL时MFC的类会以动态链接库的方式访问,所以我们的应用程序本身就会小些,可是发布应用程序时必需同时添加必要的动态链接库,以便在没有安装VS2021的机子上能够正常运行程序。

选择UseMFCinastaticlibrary时MFC的类会编译到可执行文件中,所以应用程序的可执行文件要比上种方式大,但可以单独发布,不需另加包括MFC类的库。

这里我们使用默认的UseMFCinasharedDLL。

点“Next”按钮。

     4.此时弹出上部写有“CompoundDocumentSupport”的对话框,可以通过它向应用程序加入OLE支持,指定OLE选项的复合文档类型。

本例不需要OLE特性,利用默许值“None”。

点“Next”按钮。

     5.弹出的新对话框上部写有“DocumentTemplateProperties”。

“Fileextension”可以设置程序能处置的文件的扩展名。

对话框其他选项还可以更改程序窗口的题目。

咱们都利用默许设置,点“Next”按钮。

     6.此时弹出的对话框主题是“DatabaseSupport”。

用于设置数据库选项。

此向导可以生成数据库应用程序需要的代码。

它有四个选项:

     None:

忽略所有的数据库支持;

     Headerfilesonly:

只包括概念了数据库类的头文件,但不生成对应特定表的数据库类或视图类;

     Databaseviewwithoutfilesupport:

创建对应指定表的一个数据库类和一个视图类,不附加标准文件支持;

     Databaseviewwithfilesupport:

创建对应指定表的一个数据库类和一个视图类,并附加标准文件支持。

     本例选择默许值“None”,不利用数据库特性。

点“Next”按钮。

     7.这时弹出的对话框是关于“UserInterfaceFeatures”,即用户界面特性。

咱们可以设置有无最大化按钮、最小化按钮、系统菜单和初始状态栏等。

还可以选择利用菜单栏和工具栏生成简单的应用程序仍是利用ribbon。

这里我们都选择默许设置。

点“Next”进入下一步。

      8.此时弹出“高级特性”对话框。

可以设置的高级特性包括有无打印和打印预览等。

在“Numberoffilesonrecentfilelist”项可以设置在程序界面的文件菜单下面最近打开文件的个数。

咱们仍利用默许值。

点“Next”按钮。

      9.弹出“生成类”对话框。

在对话框上部的“生成类”列表框内,列出了将要生成的4个类:

一个视图类(CHelloWorldView)、一个应用类(CHelloWorldApp)、一个文档类(CHelloWorldDoc)和一个主框架窗口类(CMainFrame)。

在对话框下面的几个编辑框中,可以修改默许的类名、类的头文件名和源文件名。

对于视图类,还可以修改其基类名称,默许的基类是CView,还有其他几个基类可以选择。

这里咱们仍是利用默认设置。

点“Finish”按钮。

     应用程序向导最后为咱们生成了应用程序框架,并在SolutionExplorer中自动打开了解决方案(见上面第一张图)。

      编译运行生成的程序

     点菜单中的Build->BuildHelloWorld编译程序,然后点Debug->StartWithoutDebugging(快捷键Ctrl+F5)运行程序,也可以直接点Debug->StartWithoutDebugging,这时会弹出对话框提示是不是编译,选择“Yes”,VS2021将自动编译链接运行HelloWorld程序。

结果页面如下所示:

       终于看见界面了。

鸡啄米在以后的教程中会继续讲解各类界面和控件的利用方式。

欢迎到鸡啄米博客交流,您的关注是我前进的动力。

VS2021/MFC编程入门之三(VS2021应用程序工程中文件的组成结构)

      鸡啄米在上一讲中为大家演示了如何。

这一节将以上一讲中生成应用程序HelloWorld的文件结构为例,讲解应用程序工程中文件的组成结构。

      用应用程序向导生成框架程序后,咱们可以在之前设置的Location下看到以解决方案名命名的文件夹,此文件夹中包括了几个文件和一个以工程名命名的子文件夹,这个子文件夹中又包括了若干个文件和一个res文件夹,创建工程时的选项不同,工程文件夹下的文件可能也会有所不同。

      若是已经以Debug方式编译链接进程序,则会在解决方案文件夹下和工程子文件夹下各有一个名为“Debug”的文件夹,而若是是Release方式编译则会出名为“Release”的文件夹。

这两种编译方式将产生两种不同版本的可执行程序:

Debug版本和Release版本。

Debug版本的可执行文件中包括了用于调试的信息和代码,而Release版本则没有调试信息,不能进行调试,但可执行文件比较小。

      鸡啄米将所有文件分为6个部份:

解决方案相关文件、工程相关文件、应用程序头文件和源文件、资源文件、预编译头文件和编译链接生成文件。

      1.解决方案相关文件

      解决方案相关文件包括解决方案文件夹下的.sdf文件、.sln文件、.suo文件和ipch文件夹。

      .sdf文件和ipch目录一般占用空间比较大,几十兆乃至上百兆,与智能提示、错误提示、代码恢复和团队本地仓库等相关。

若是你感觉不需要则可以设置不生成它们,方式是点击菜单栏Tools->Options,弹出Options对话框,选择左侧面板中TextEditor->C/C++->Advanced,右边列表中第一项DisableDatabase由False改成True就可以够了,最后关闭VS2021再删除.sdf文件和ipch目录以后就不会再产生了。

但关闭此选项以后也会有很多不便,例如写程序时的智能提示没有了。

      .sln文件和.suo文件为MFC自动生成的解决方案文件,它包括当前解决方案中的工程信息,存储解决方案的设置。

       2.工程相关文件

      工程相关文件包括工程文件夹下的.vcxproj文件和.文件。

      .vcxproj文件是MFC生成的工程文件,它包括当前工程的设置和工程所包括的文件等信息。

.文件寄放工程的虚拟目录信息,也就是在解决方案阅读器中的目录结构信息。

      3.应用程序头文件和源文件

      应用程序向导会按照顾用程序的类型(单文档、多文档或基于对话框的程序)自动生成一些头文件和源文件,这些文件是工程的主体部份,用于实现主框架、文档、视图等。

鸡啄米下面别离简单介绍下各个文件:

      :

应用程序的主头文件。

主要包括由CWinAppEx类派生的CHelloWorldApp类的声明,和CHelloWorldApp类的全局对象theApp的声明。

      :

应用程序的主源文件。

主要包括CHelloWorldApp类的实现,CHelloWorldApp类的全局对象theApp的概念等。

      和:

通过这两个文件从CFrameWndEx类派生出CMainFrame类,用于创建主框架、菜单栏、工具栏和状态栏等。

      和:

这两个文件从CDocument类派生出文档类CHelloWorldDoc,包括一些用来初始化文档、串行化(保留和装入)文档和调试的成员函数。

      和:

它们从CView类派生出名为CHelloWorldView的视图类,用来显示和打印文档数据,包括了一些画图和用于调试的成员函数。

      和:

由CDockablePane类派生出CClassView类,用于实现应用程序界面左侧面板上的ClassView。

      和:

由CDockablePane类派生出CFileView类,用于实现应用程序界面左侧面板上的FileView。

      和:

由CDockablePane类派生出COutputWnd类,用于实现应用程序界面下侧面板Output。

      和:

由CDockablePane类派生出CPropertiesWnd类,用于实现应用程序界面右边面板Properties。

      和:

由CTreeCtrl类派生出CViewTree类,用于实现出此刻ClassView和FileView等中的树视图。

      4.资源文件

      一般咱们利用MFC生成窗口程序都会有对话框、图标、菜单等资源,应用程序向导会生成资源相关文件:

res目录、文件和文件。

      res目录:

工程文件夹下的res目录中含有应用程序默许图标、工具栏利用图标等图标文件。

      :

包括默许菜单概念、字符串表和加速键表,指定了默许的About对话框和应用程序默许图标文件等。

      :

含有各类资源的ID概念。

       5.预编译头文件

      几乎所有的MFC程序的文件都要包括等文件,若是每次都编译一次则会大大减慢编译速度。

所以把常常利用的MFC头文件都放到了文件中,然后由包括文件,编译器对只编译一次,并生成编译以后的预编译头,大大提高了编译效率。

      6.编译链接生成文件

      若是是Debug方式编译,则会在解决方案文件夹和工程文件夹下都生成Debug子文件夹,而若是是Release方式编译则生成Release子文件夹。

      工程文件夹下的Debug或Release子文件夹中包括了编译链接时产生的中间文件,解决方案文件夹下的Debug或Release子文件夹中主要包括有应用程序的可执行文件。

      关于应用程序工程文件的组成结构鸡啄米就先讲到这了。

其中包括了很多专出名词,以后大家会慢慢熟悉的。

欢迎来鸡啄米博客交流。

谢谢。

VS2021/MFC编程入门之四(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1