VS2010MFC编程入门

本文档详细介绍了MFC编程入门,包括VS2010的安装、MFC应用程序框架的构建,以及各种对话框的创建和使用,如模态对话框、非模态对话框、属性页对话框等。
摘要由CSDN通过智能技术生成

 

一、MFC编程入门教程之目录

第1部分:MFC编程入门教程之目录

1.MFC编程入门之前言

 鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序。
       C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基本的界面程序都能很容易编写出来。
       VC++简介
       VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台。VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。Visual Studio包含了VB、VC++、C#等编译环境。当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0。但自微软2002年发布Visual Studio.NET以来,微软建立了在.NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。

       VC++版本的选择:VS2010
       因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC++ 6.0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。
       近些年VC++主要的版本包括:VC++ 6.0、VS2003、VS2005、VS2008和VS2010。
       VC++ 6.0占用的系统资源比较少,打开工程、编译运行都比较快,所以赢得很多软件开发者的青睐。但因为它先于C++标准推出,所以对C++标准的支持不太好。举个例子:
       for(int i=0; i<5; i++)
       {
                a[i] = i;
       }
       for语句中声明的变量i,对于VC++ 6.0来说,出了for循环仍能使用。但很显然这与C++标准对于变量生存期的规定不符合。
       随着VC++版本的更新,对C++标准的支持越来越好,对各种技术的支持也越来越完善。但同时新版本所需的资源也越来越多,对处理器和内存的要求越来越高。到VS2010,光安装文件就2G多,安装后的文件占3G多空间,其运行也经常受处理器和内存等性能的限制。但鸡啄米还是推荐大家使用VS2010,毕竟它是最新版本,类库和开发技术都是最完善的,本教程也将使用VS2010为大家做例程的演示。当然如果系统配置确实比较低,可以选择VS2005,VS2005和VS2010相比还是要轻量级一些的。VC++ 6.0已经过时,奉劝大家尽量别用了。
       VC++与MFC
       讲VC++免不了要提MFC,MFC全称Microsoft Foundation Classes,也就是微软基础类库。它是VC++的核心,是C++与Windows API的结合,很彻底的用C++封装了Windows SDK(Software Development Kit,软件开发工具包)中的结构和功能,还提供了一个应用程序框架,此应用程序框架为软件开发者完成了一些例行化的工作,比如各种窗口、工具栏、菜单的生成和管理等,不需要开发者再去解决那些很复杂很乏味的难题,比如每个窗口都要使用Windows API注册、生成与管理。这样就大大减少了软件开发者的工作量,提高了开发效率。
       当然VC++不是只能够创建MFC应用程序,同样也能够进行Windows SDK编程,但是那样的话就舍弃了VC++的核心,放弃了VC++最强大的部分。MFC也不是只能用于VC++中,它同样也可以用在Borland C++等编译器中,当然没有几个人这样做。
       本节旨在让大家对VC++、VS2010和MFC有基本的概念上的认识,后面鸡啄米会带大家进入VS2010/MFC的世界,让大家轻松的开发各种包含窗口、图形等的可视化程序。
View Code

2.VS2010与MSDN安装过程图解

   上一讲中鸡啄米对VC++和MFC做了一些简单介绍。在本套教程中鸡啄米将使用VS2010为大家讲解如何使用VC++和MFC进行编程,所以首先要安装VS2010。
       一.下载VS2010
       首先我们需要下载VS2010,大家可以在网上下载VS2010破解正式版,建议选择英文版,养成使用英文工具的习惯。鸡啄米使用VS2010旗舰试用版VS2010UltimTrial.iso为例介绍安装过程,旗舰试用版官方下载地址为:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=12187。正式版的安装过程与试用版类似。
       二.安装VS2010
       下载后进行安装。安装方法与一般的iso文件一样,可以使用虚拟光驱软件Daemon Tools安装,也可以将其解压后点击setup.exe进行安装。
       鸡啄米为了让大家更直观的看到安装过程,我将在自己机子上再重新安装一次,并截图为大家讲解。
       这里使用Daemon Tools安装VS2010。首先打开Daemon Tools,屏幕右下角会出现托盘图标,在图标上点右键,会弹出菜单,再把鼠标移到菜单项“虚拟设备”上,然后再移到子菜单项“设备 0:[L:] 无媒体”上,最后点击下一级子菜单项“装载映像”,弹出对话框选择VS2010UltimTrial.iso文件。

       这样虚拟光驱就会打开此iso文件,弹出自动安装的提示,选择“运行autorun.exe”就可以了,如果没有弹出提示就通过资源管理器进入虚拟光驱,用setup.exe安装。接着会弹出下面的对话框:

       当然选择“Install Microsoft Visual Studio 2010”进入下一步,加载安装组件后如下显示:

    点“Next”后:

         选择“I have read and accept the license terms”后点“Next”弹出对话框:

       此处是让我们选择要安装的功能,有两种:Full(完全)和Custom(自定义)。Full选项表示安装所有编程语言和工具,Custom选择表示可以自定义要安装的编程语言和工具。右侧可以更改安装路径,鸡啄米建议不要安装到C盘,因为它占用的空间比较大。鸡啄米安装到了D盘,使用Full完全安装。如果选择Custom安装,点“Next”则出现如下画面:

       大家可以根据自己的需要取消某些语言或工具的安装,比如不想安装Visual C#,取消选择它就可以了。如果觉得以后都有可能会用到,那就像鸡啄米一样选择完全安装吧。
       Full或Custom方式和安装路径设置好后,点“Install”进行安装:
 

         可能正式版的安装文件在安装过程中会有重启过程。鸡啄米使用的试用版中间并没有重启。安装完成:

         如果要继续安装MSDN,先不要卸载虚拟光驱映像。
         三.安装MSDN
         我们使用VS2010进行软件开发同样离不开帮助文档,即MSDN。在本地安装MSDN的方法如下:
         在开始菜单的“所有程序”->“Microsoft Visual Studio 2010”->“Visual Studio Tools”下选择“Manage Help Settings - ENU”:

         弹出对话框:

         可以将帮助库存在默认路径,也可以修改存放路径。鸡啄米使用默认路径,点“OK”出现:

        选择“Install Content From Disk”后弹出对话框选择帮助所在文件,这时需要在加载了VS2010的虚拟光驱中找,选择图中所示路径:
 

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

         点“Update”进行安装,等待其完成就可以了。
         使用MSDN时点击开始菜单的“所有程序”->“Microsoft Visual Studio 2010”->“Microsoft Visual Studio 2010 Documentation”即可。
         到此VS2010和MSDN的安装过程就结束了。以后就可以正式使用VS2010进行软件开发了。至于VS2010的使用方法在鸡啄米的C++编程入门系列中已经介绍过,大家可以看看。
View Code

第2部分:MFC应用程序框架

1.利用MFC向导生成单文档应用程序框架

上一讲中讲了VS2010和MSDN如何安装,相信大家都已经安装好了。这一讲给大家一个简单的例子,演示如何生成单文档应用程序框架。
      解决方案与工程
      鸡啄米在VS2010的使用介绍中已经讲了解决方案与工程的概念,这里再重提一下。每个应用程序都作为一个工程来处理,它包含了头文件、源文件和资源文件等,这些文件通过工程集中管理。在VS2010中,工程都是在解决方案管理之下的。一个解决方案可以管理多个工程,可以把解决方案理解为多个有关系或者没有关系的工程的集合。VS2010提供了一个Solution Explorer解决方案浏览器视图,可以显示当前解决方案的内容,当新建一个工程时可以选择新建一个解决方案还是加入当前解决方案。
       下图左侧面板中正在显示的视图就是Solution Explorer,视图中有一个解决方案-HelloWorld,此解决方案下有一个同名的工程-HelloWorld。

      在应用程序向导生成应用程序后,VS2010会在用户设置的路径下,以解决方案名为名称建立一个目录,里面存放自动生成的文件。
      使用VS2010应用程序向导生成单文档应用程序框架
      鸡啄米这里简略演示下怎样生成单文档应用程序框架,让大家先有个直观的了解,有不理解的地方可以留着以后回来再看。下面按照操作步骤一步步讲解:
      1.点菜单栏File->New->Project,弹出New Project对话框,我们可以选择工程类型。
      如果安装完VS2010以后第一启动时已经设置为VC++,则Installed Templates->Visual C++项会默认展开,而如果没有设置VC++,则可以展开到Installed Templates->Other Languages->Visual C++项。因为我们要生成的是MFC程序,所以在“Visual C++”下选择“MFC”,对话框中间区域会出现三个选项:MFC ActiveX Control、MFC Application和MFC DLL。MFC ActiveX Control用来生成MFC ActiveX控件程序。MFC Application用来生成MFC应用程序。MFC DLL用来生成MFC动态链接库程序。当然我们要选择MFC Application。
      在对话框下部有Name、Location和Solution name三个设置项。意义如下:Name--工程名,Location--解决方案路径,Solution name--解决方案名称。这里Name我们设为“HelloWorld”,Location设置为“桌面”的路径,Solution name默认和Name一样,当然可以修改为其他名字,这里我们不作修改,也使用“HelloWorld”。点“OK”按钮。


      2.这时会弹出“MFC Application Wizard”对话框,上部写有“Welcome to the MFC Application Wizard”,下面显示了当前工程的默认设置。第一条“Tabbed multiple document interface (MDI)”是说此工程是多文档应用程序。如果这时直接点下面的“Finish”按钮,可生成具有上面列出设置的多文档程序。但我们此例是要建立单文档应用程序,所以点“Next”按钮再继续设置吧。
      3.接下来弹出的对话框上部写有“Application Type”,当然是让选择应用程序类型,我们看到有四种类型:Single document(单文档)、Multiple documents(多文档)、Dialog based(基于对话框)和Multiple top-level documents。我们选择Single document类型,以生成一个单文档应用程序框架。单文档应用程序运行时是一个单窗口界面。
 

      此对话框的“Resource language”还提供语言的选择,这里默认选择英语。“Project style”可选择工程风格,我们选择默认的“Visual Studio”风格。“Use of MFC”有两个选项:Use MFC in a shared DLL(动态链接库方式使用MFC)和Use MFC in a static library(静态库方式使用MFC)。选择Use MFC in a shared DLL时MFC的类会以动态链接库的方式访问,所以我们的应用程序本身就会小些,但是发布应用程序时必须同时添加必要的动态链接库,以便在没有安装VS2010的机子上能够正常运行程序。选择Use MFC in a static library时MFC的类会编译到可执行文件中,所以应用程序的可执行文件要比上种方式大,但可以单独发布,不需另加包含MFC类的库。这里我们使用默认的Use MFC in a shared DLL。点“Next”按钮。
      4.此时弹出上部写有“Compound Document Support”的对话框,可以通过它向应用程序加入OLE支持,指定OLE选项的复合文档类型。本例不需要OLE特性,使用默认值“None”。点“Next”按钮。
      5.弹出的新对话框上部写有“Document Template Properties”。“File extension”可以设置程序能处理的文件的扩展名。对话框其他选项还可以更改程序窗口的标题。我们都使用默认设置,点“Next”按钮。
      6.此时弹出的对话框主题是“Database Support”。用于设置数据库选项。此向导可以生成数据库应用程序需要的代码。它有四个选项:
      None:忽略所有的数据库支持;
      Header files only:只包含定义了数据库类的头文件,但不生成对应特定表的数据库类或视图类;
      Database view without file support:创建对应指定表的一个数据库类和一个视图类,不附加标准文件支持;
      Database view with file support:创建对应指定表的一个数据库类和一个视图类,并附加标准文件支持。
      本例选择默认值“None”,不使用数据库特性。点“Next”按钮。
      7.这时弹出的对话框是关于“User Interface Features”,即用户界面特性。我们可以设置有无最大化按钮、最小化按钮、系统菜单和初始状态栏等。还可以选择使用菜单栏和工具栏生成简单的应用程序还是使用ribbon。这里我们都选择默认设置。点“Next”进入下一步。
      8.此时弹出“高级特性”对话框。可以设置的高级特性包括有无打印和打印预览等。在“Number of files on recent file list”项可以设置在程序界面的文件菜单下面最近打开文件的个数。我们仍使用默认值。点“Next”按钮。
      9.弹出“生成类”对话框。在对话框上部的“生成类”列表框内,列出了将要生成的4 个类:一个视图类(CHelloWorldView)、一个应用类(CHelloWorldApp)、一个文档类(CHelloWorldDoc)和一个主框架窗口类(CMainFrame)。在对话框下面的几个编辑框中,可以修改默认的类名、类的头文件名和源文件名。对于视图类,还可以修改其基类名称,默认的基类是CView,还有其他几个基类可以选择。这里我们还是使用默认设置。点“Finish”按钮。
      应用程序向导最后为我们生成了应用程序框架,并在Solution Explorer中自动打开了解决方案(见上面第一张图)。
      编译运行生成的程序
      点菜单中的Build->Build HelloWorld编译程序,然后点Debug->Start Without Debugging(快捷键Ctrl+F5)运行程序,也可以直接点Debug->Start Without Debugging,这时会弹出对话框提示是否编译,选择“Yes”,VS2010将自动编译链接运行HelloWorld程序。结果页面如下所示:

       终于看见界面了。鸡啄米在以后的教程中会继续讲解各种界面和控件的使用方法。欢迎到鸡啄米博客交流,您的关注是我前进的动力。
View Code

2.VS2010应用程序工程中文件的组成结构

鸡啄米在上一讲中为大家演示了如何利用应用程序向导创建单文档应用程序框架。这一节将以上一讲中生成应用程序HelloWorld的文件结构为例,讲解VS2010应用程序工程中文件的组成结构。
       用应用程序向导生成框架程序后,我们可以在之前设置的Location下看到以解决方案名命名的文件夹,此文件夹中包含了几个文件和一个以工程名命名的子文件夹,这个子文件夹中又包含了若干个文件和一个res文件夹,创建工程时的选项不同,工程文件夹下的文件可能也会有所不同。
       如果已经以Debug方式编译链接过程序,则会在解决方案文件夹下和工程子文件夹下各有一个名为“Debug”的文件夹,而如果是Release方式编译则会有名为“Release”的文件夹。这两种编译方式将产生两种不同版本的可执行程序:Debug版本和Release版本。Debug版本的可执行文件中包含了用于调试的信息和代码,而Release版本则没有调试信息,不能进行调试,但可执行文件比较小。
       鸡啄米将所有文件分为6个部分:解决方案相关文件、工程相关文件、应用程序头文件和源文件、资源文件、预编译头文件和编译链接生成文件。
       1.解决方案相关文件
       解决方案相关文件包括解决方案文件夹下的.sdf文件、.sln文件、.suo文件和ipch文件夹。
       .sdf文件和ipch目录一般占用空间比较大,几十兆甚至上百兆,与智能提示、错误提示、代码恢复和团队本地仓库等相关。如果你觉得不需要则可以设置不生成它们,方法是点击菜单栏Tools->Options,弹出Options对话框,选择左侧面板中Text Editor->C/C++->Advanced,右侧列表中第一项Disable Database由False改为True就可以了,最后关闭VS2010再删除.sdf文件和ipch目录以后就不会再产生了。但关闭此选项以后也会有很多不便,例如写程序时的智能提示没有了。
       .sln文件和.suo文件为MFC自动生成的解决方案文件,它包含当前解决方案中的工程信息,存储解决方案的设置。
       2.工程相关文件
       工程相关文件包括工程文件夹下的.vcxproj文件和.vcxproj.filters文件。
       .vcxproj文件是MFC生成的工程文件,它包含当前工程的设置和工程所包含的文件等信息。.vcxproj.filters文件存放工程的虚拟目录信息,也就是在解决方案浏览器中的目录结构信息。

       3.应用程序头文件和源文件
       应用程序向导会根据应用程序的类型(单文档、多文档或基于对话框的程序)自动生成一些头文件和源文件,这些文件是工程的主体部分,用于实现主框架、文档、视图等。鸡啄米下面分别简单介绍下各个文件:
       HelloWorld.h:应用程序的主头文件。主要包含由CWinAppEx类派生的CHelloWorldApp类的声明,以及CHelloWorldApp类的全局对象theApp的声明。
       HelloWorld.cpp:应用程序的主源文件。主要包含CHelloWorldApp类的实现,CHelloWorldApp类的全局对象theApp的定义等。
       MainFrm.h和MainFrm.cpp:通过这两个文件从CFrameWndEx类派生出CMainFrame类,用于创建主框架、菜单栏、工具栏和状态栏等。
       HelloWorldDoc.h和HelloWorldDoc.cpp:这两个文件从CDocument类派生出文档类CHelloWorldDoc,包含一些用来初始化文档、串行化(保存和装入)文档和调试的成员函数。
       HelloWorldView.h和HelloWorldView.cpp:它们从CView类派生出名为CHelloWorldView的视图类,用来显示和打印文档数据,包含了一些绘图和用于调试的成员函数。
       ClassView.h和ClassView.cpp:由CDockablePane类派生出CClassView类,用于实现应用程序界面左侧面板上的Class View。
       FileView.h和FileView.cpp:由CDockablePane类派生出CFileView类,用于实现应用程序界面左侧面板上的File View。
       OutputWnd.h和OutputWnd.cpp:由CDockablePane类派生出COutputWnd类,用于实现应用程序界面下侧面板Output。
       PropertiesWnd.h和PropertiesWnd.cpp:由CDockablePane类派生出CPropertiesWnd类,用于实现应用程序界面右侧面板Properties。
       ViewTree.h和ViewTree.cpp:由CTreeCtrl类派生出CViewTree类,用于实现出现在ClassView和FileView等中的树视图。
       4.资源文件
       一般我们使用MFC生成窗口程序都会有对话框、图标、菜单等资源,应用程序向导会生成资源相关文件:res目录、HelloWorld.rc文件和Resource.h文件。
       res目录:工程文件夹下的res目录中含有应用程序默认图标、工具栏使用图标等图标文件。
       HelloWorld.rc:包含默认菜单定义、字符串表和加速键表,指定了默认的About对话框和应用程序默认图标文件等。
       Resource.h:含有各种资源的ID定义。
       5.预编译头文件
       几乎所有的MFC程序的文件都要包含afxwin.h等文件,如果每次都编译一次则会大大减慢编译速度。所以把常用的MFC头文件都放到了stdafx.h文件中,然后由stdafx.cpp包含stdafx.h文件,编译器对stdafx.cpp只编译一次,并生成编译之后的预编译头HelloWorld.pch,大大提高了编译效率。
       6.编译链接生成文件
       如果是Debug方式编译,则会在解决方案文件夹和工程文件夹下都生成Debug子文件夹,而如果是Release方式编译则生成Release子文件夹。
       工程文件夹下的Debug或Release子文件夹中包含了编译链接时产生的中间文件,解决方案文件夹下的Debug或Release子文件夹中主要包含有应用程序的可执行文件。
       关于应用程序工程文件的组成结构鸡啄米就先讲到这了。其中包含了很多专有名词,以后大家会慢慢熟悉的。欢迎来鸡啄米博客交流。谢谢。
View Code

3.MFC应用程序框架分析

   上一讲鸡啄米讲的是VS2010应用程序工程中文件的组成结构,可能大家对工程的运行原理还是很模糊,理不出头绪,毕竟跟C++编程入门系列中的例程差别太大。这一节鸡啄米就为大家分析下MFC应用程序框架的运行流程。
       一.SDK应用程序与MFC应用程序运行过程的对比
       程序运行都要有入口函数,在之前的C++教程中都是main函数,而Windows应用程序的入口函数是WinMain函数,MFC程序也是从WinMain函数开始的。下面鸡啄米就给出用Windows SDK写的“HelloWorld”程序,与应用程序框架进行对比,这样能更好的了解框架是怎样运行的。Windows SDK开发程序就是不使用MFC类库,直接用Windows API函数进行软件开发。鸡啄米不是要讲解SDK开发,只是为了对比而简单介绍,至于SDK开发可以在大家学完MFC以后选择是否要研究,一般来说有简单了解就可以了。
       SDK应用程序
       首先,给出Windows SDK应用程序“HelloWorld”的源码:  
C++代码
#include <windows.h>    
  
LRESULT CALLBACK myWndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam);   
     
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)      
{      
  const static TCHAR appName[] = TEXT("Hello world");      
  WNDCLASSEX myWin;      
  myWin.cbSize = sizeof(myWin);      
  myWin.style = CS_HREDRAW | CS_VREDRAW;      
  myWin.lpfnWndProc = myWndProc;      
  myWin.cbClsExtra = 0;      
  myWin.cbWndExtra = 0;      
  myWin.hInstance = hInstance;      
  myWin.hIcon = 0;      
  myWin.hIconSm  = 0;      
  myWin.hCursor = 0;      
  myWin.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);      
  myWin.lpszMenuName = 0;      
  myWin.lpszClassName = appName;      
  //Register      
  if (!RegisterClassEx(&myWin)) return 0;      
  const HWND hWindow = CreateWindow(      
    appName,      
    appName,      
    WS_OVERLAPPEDWINDOW,      
    CW_USEDEFAULT,      
    CW_USEDEFAULT,      
    CW_USEDEFAULT,      
    CW_USEDEFAULT,      
    0,      
    0,      
    hInstance,      
    0);      
  ShowWindow(hWindow,iCmdShow);      
  UpdateWindow(hWindow);      
  {      
    MSG msg;      
    while(GetMessage(&msg,0,0,0))      
    {      
      TranslateMessage(&msg);      
      DispatchMessage(&msg);      
    }      
    return (int)msg.wParam;      
  }      
}      
     
LRESULT CALLBACK myWndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam)      
{      
  if (msg==WM_PAINT)      
  {      
    PAINTSTRUCT ps;      
    const HDC hDC = BeginPaint(hWindow,&ps);      
    RECT rect;      
    GetClientRect(hWindow,&rect);      
    DrawText(hDC,TEXT("HELLO WORLD"),-1,&rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);      
    EndPaint(hWindow,&ps);      
    return 0;      
  }      
  else if (msg==WM_DESTROY)      
  {      
    PostQuitMessage(0);      
    return 0;      
  }      
  return DefWindowProc(hWindow,msg,wParam,lParam);      
}  
       上面的程序运行的流程是:进入WinMain函数->初始化WNDCLASSEX,调用RegisterClassEx函数注册窗口类->调用ShowWindow和UpdateWindow函数显示并更新窗口->进入消息循环。关于消息循环再简单说下,Windows应用程序是消息驱动的,系统或用户让应用程序进行某项操作或完成某个任务时会发送消息,进入程序的消息队列,然后消息循环会将消息队列中的消息取出,交予相应的窗口过程处理,此程序的窗口过程函数就是myWndProc函数,窗口过程函数处理完消息就完成了某项操作或任务。本例是要显示“HELLO WORLD”字符串,UpdateWindow函数会发送WM_PAINT消息,但是此消息不经过消息队列而是直接送到窗口过程处理,在窗口过程函数中最终绘制了“HELLO WORLD”字符串。

       MFC应用程序
       下面是MFC应用程序的运行流程,通过MFC库中代码进行分析:
       首先在HelloWorld.cpp中定义全局对象theApp:CHelloWorldApp theApp;。调用CWinApp和CHelloWorldApp的构造函数后
一、VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入门之前言 VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) 第二部分:VS2010/MFC应用程序框架 VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架) VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构) VS2010/MFC编程入门之四(MFC应用程序框架分析) VS2010/MFC编程入门之五(MFC消息映射机制概述) 第三部分:对话框 VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性) VS2010/MFC编程入门之七(对话框:为对话框添加控件) VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量) VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数) VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序) VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程) VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示) VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍) VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示) VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示) VS2010/MFC编程入门之十六(对话框:消息对话框) VS2010/MFC编程入门之十七(对话框:文件对话框) VS2010/MFC编程入门之十八(对话框:字体对话框) VS2010/MFC编程入门之十九(对话框:颜色对话框) 第四部分:常用控件 VS2010/MFC编程入门之二十(常用控件:静态文本框) VS2010/MFC编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box) VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox) VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box) VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状态栏 VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解) VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用) VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类) VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用) VS2010/MFC编程入门之三十八(状态栏的使用详解) 第六部分:文档、视图和框架 VS2010/MFC编程入门之三十九(文档、视图和框架:概述) VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系) VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口) 第七部分:MFC常用类 VS2010/MFC编程入门之四十二(MFC常用类:CString类) VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类) VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer) VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类) VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理) 第八部分:字体和文本输出 VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类) VS2010/MFC编程入门之四十八(字体和文本输出:文本输出) 第九部分:图形图像 VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数) VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen) VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush) 第十部分:Ribbon界面开发 VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架) VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件) VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数) 本文来源于鸡啄米 http://www.jizhuomi.com/ , 原文地址:http://www.jizhuomi.com/software/257.html
VS2010-MFC编程入门之前言-软件开发-鸡啄米 VS2010-MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 VS2010-MFC编程入门之三(VS2010应用程序工程中文件的组成结构)鸡啄米 VS2010-MFC编程入门之四(MFC应用程序框架分析)-软件开发-鸡啄米 VS2010-MFC编程入门之五(MFC消息映射机制概述)-软件开发-鸡啄米 VS2010-MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)鸡啄米 VS2010-MFC编程入门之七(对话框:为对话框添加控件)-软件开发-鸡啄米 VS2010-MFC编程入门之八(对话框:创建对话框类和添加控件变量) VS2010-MFC编程入门之九(对话框:为控件添加消息处理函数)-软件开发-鸡啄米 VS2010-MFC编程入门之十(对话框:设置对话框控件的Tab顺序)-软件开发-鸡啄米 VS2010-MFC编程入门之十一(对话框:模态对话框及其弹出过程)-软件开发-鸡啄米 VS2010-MFC编程入门之十二(对话框:非模态对话框的创建及显示)-软件开发-鸡啄米 VS2010-MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)-软件开发-鸡啄米 VS2010-MFC编程入门之十四(对话框:向导对话框的创建及显示)-软件开发-鸡啄米 VS2010-MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)-软件开发-鸡啄米 VS2010-MFC编程入门之十六(对话框:消息对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之十七(对话框:文件对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之十八(对话框:字体对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之十九(对话框:颜色对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之二十(常用控件:静态文本框)-软件开发-鸡啄米 VS2010-MFC编程入门之二十一(常用控件:编辑框Edit Control)-软件开发-鸡啄米 VS2010-MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)-软件开发-鸡啄米 VS2010-MFC编程入门之二十三(常用控件:按钮控件的编程实例)-软件开发-鸡啄米 VS2010-MFC编程入门之二十四(常用控件:列表框控件ListBox)-软件开发-鸡啄米 VS2010-MFC编程入门之二十五(常用控件:组合框控件Combo Box)-软件开发-鸡啄米 VS2010-MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)-软件开发-鸡啄米 VS2010-MFC编程入门之二十七(常用控件:图片控件Picture Control)-软件开发-鸡啄米 VS2010-MFC编程入门之二十八(常用控件:列表视图控件List Control 上)-软件开发-鸡啄米 VS2010-MFC编程入门之二十九(常用控件:列表视图控件List Control 下)-软件开发-鸡啄米 VS2010-MFC编程入门之三十(常用控件:树形控件Tree Control 上)-软件开发-鸡啄米 VS2010-MFC编程入门之三十一(常用控件:树形控件Tree Control 下)-软件开发-鸡啄米 VS2010-MFC编程入门之三十二(常用控件:标签控件Tab Control 上)-软件开发-鸡啄米 VS2010-MFC编程入门之三十三(常用控件:标签控件Tab Control 下)-软件开发-鸡啄米
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值