ImageVerifierCode 换一换
格式:DOCX , 页数:68 ,大小:2.12MB ,
资源ID:18364468      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18364468.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(02MFC基础文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

02MFC基础文档格式.docx

1、2.1.1 组成Visual C+提供了强大而灵活的集成开发环境,可用于创建基于Windows和.NET的应用程序。Visual C+包含下列主要组件: Visual C+编译器工具。支持MFC和STL等传统本机代码开发,还支持MC+(Managed Extensions for C+,C+的托管扩展)或C+/CLI的.NET(CLR)开发(将在16.5节中简介)。除了支持传统的x86计算机外,还支持x64和IA-64等64位计算机,并针对这两种平台优化了性能。 Visual C+库。包括行业标准ATL(Standard Template Library,标准模板库,一套基于模板的 C+ 类,

2、可用来创建小型、快速的COM对象ActiveX控件)、确定应用程序框架的MFC库,以及各种C/C+标准库,如iostream库、(用于泛型编程的)标准模板库(Standard Template Library,STL)和C运行时库(C RunTime library,CRT)。其中在CRT中还包括了微软公司的安全增强替代函数。VC08中新引入的STL/CLR库,为托管代码开发人员引入了STL。具有数据封送新功能的C+支持库,可简化面向CLR的程序。CRT、iostream和STL已经在C+编程中介绍过。因为COM即将被.NET组件所代替,加上篇幅的限制,因此本课程不介绍ATL。 Visual

3、C+开发环境。该开发环境为项目管理与配置(包括更好地支持大型项目)、源代码编辑、源代码浏览和调试工具提供强力支持。该环境还支持智能感知(IntelliSense),在编写代码时,该功能可以提供智能化且特定于上下文的建议。除常规的图形用户界面应用程序外,Visual C+还允许开发人员生成Web应用程序、基于Windows的智能客户端应用程序以及适用于瘦客户端和智能客户端移动设备的解决方案。Visual C+的具体组成部分有: C/C+编译器:支持ANSI C和ISO/IEC C+源代码的编译(VC 2012还支持C+的最新国际标准C+11),支持STL,另外还带有微软的扩展(MC+或C+/CL

4、I、C+/CX、STL/CLR)。 源代码编辑器:支持语法着色、自动缩进、完美打印、智能感知和自动完成(键入部分语句后编辑器会自动提供可能的完整语句供你选择,从而不需死记几千个函数和常数,也不必过分依赖于联机帮助)。 属性编程:VS.NET为VC引入了基于属性的编程方法(可选“视图其他窗口属性窗口”菜单项来打开属性窗口),可以自动生成各种代码,大大简化开发的过程。如可轻松地派生新类、编辑资源、添加事件/消息响应函数等。 资源编辑器:可视编程环境,可用来编辑对话框、位图、图标、字符串等资源。 资源编译器:从资源编辑器或资源源文件(*.rc)中读取ASCII码的资源脚本,输出一个可供链接程序用的二

5、进制文件(*.res)。 链接程序:读取C/C+编译器输出的目标文件(*.obj)和资源编译器输出的二进制文件(*.res),并为MFC代码、运行库代码和Windows代码访问LIB文件,最后生成可执行程序文件(*.exe)。 调试程序:可设置/删除断点、控制单步执行、查看所有派生类和基类的数据成员、观察栈/内存/变量、动态修改程序代码和变量值。 MFC应用程序向导(AppWizard):一个基本代码自动生成器,根据程序员在对话框选择和指定的相关内容,VC自动创建一个带有特性、类名和源代码文件名的Windows应用程序框架,使你能迅速开始一个应用程序的实质性设计。 联机帮助:如安装了MSDN(

6、Microsoft Developer Network Library,微软开发人员网络图书馆),可选“帮助”菜单中的菜单项“目录”(内容目录)、“搜索”(关键词全文查找)、“索引”(前向一致标题文本串匹配)等获得帮助,也可按F1键获得当前位置的上下文相关帮助。MSDN内容丰富(可达近30GB),包含使用VC编程所需要的Windows SDK、MFC、C+、C#、VB、.NET/CLR等的几乎所有参考资料和示教、编程指南等。与使用C+编写基于命令行的控制台程序最大的不同是,利用Visual C+编写(具有GUI)的Windows应用程序,带有菜单、工具条、对话框、图标、位图、字符串、加速键等资

7、源。因此,在Visual C+的开发环境中,除了代码编辑器和编译器外,还有各种资源编辑器和资源链接器。编译后的二进制资源被链接器嵌入到可执行程序中,既在控制台程序的代码段、数据段和堆栈段之外,Windows应用程序还多了一个资源段。图2-1是Visual C+(MFC)应用程序的创建和编译过程。2.1.2 版本下面列出Visual C+及对应MFC的所有主要版本: 1992年2月MS C/C+ 7.0 (MFC 1.0) 1993年2月Visual C+ 1.0 (MFC 2.0) 1993年12月Visual C+ 1.5 (MFC 2.5) 1994年9月Visual C+ 2.0 (MF

8、C 3.0) (没有Visual C+ 3.0) 1995年7月Visual C+ 4.0 (MFC 4.0) 1996年3月Visual C+ 4.1 (MFC 4.1) 1996年6月Visual C+ 4.2 (MFC 4.2) 1997年1月Visual C+ 5.0 (MFC 4.21)图2-1 Visual C+的MFC应用程序的创建和编译过程 1998年6月Visual C+ 6.0 (MFC 6.0) 2002年2月Visual C+.NET (MFC 7.0) 2003年5月20日Visual C+.NET 2003 (MFC 7.1) 2005年11月7日Visual C+

9、 2005 (MFC 8.0) 2007年11月16日Visual C+ 2008 (MFC 9.0) 2008年4月7日Visual C+ 2008功能包(Feature Pack)(MFC 9.0 FP) 2008年8月11日Visual C+ 2008 SP1(含MFC 9.0 FP) 2010年4月12日Visual C+ 2010(MFC 10.0) 2011年3月3日Visual C+ 2010 SP1(MFC 10.0 SP) 2012年9月12日Visual C+ 2012(MFC 11.0) 2013年10月18日Visual C+ 2013(MFC 12.0)最早的MFC

10、1.0,是随MS C/C+ 7.0于1992年2月的,还没有IDE、应用程序框架和Visual C+,后来才随微软的可视开发平台Visual Workbench推出Visual C+。到Visual C+ 2.0,已经基本成熟。为了使Visual C+的版本号与MFC的一致,微软跳过了Visual C+ 3.0而直接升级到Visual C+ 4.0。从Visual C+ 4.0开始,直到Visual C+ 2008,MFC类库和基本编程都变化不大,开发环境也类似。只是为了进行.NET的CLR托管编程,从Visual C+.NET(2002)开始,微软对C+的语法进行了托管扩展MC+,从Visu

11、al C+ 2005版起又改为C+/CLI。在Visual C+ 2008和.NET框架3.5中,增加了托管的泛型编程库STL/CLR。不过(包括在Visual Studio 2008 SP1中的)MFC Feature Pack for Visual C+ 2008(MFC的Visual C+ 2008功能包,简称为MFC功能包)中,引入了众多的新界面元素和功能(如功能区、可视主题、Aero界面),增加了两百多个新的MFC类。在Visual C+ 2010中,还增加了功能区的交互可视编程功能和支持多核编程的PPL(Parallel Patterns Library,并行模式库)。而在Visu

12、al C+ 2012中,又增加了用 XAML和C+/CX(Component Extension,组件扩展)编写Metro风格的应用程序及游戏和利用高效GPU提高应用程序性能的C+ AMP(Accelerated Massive Parallelism,加速的大量并行)库等新功能: 编写符合C+11语言标准的代码。 使用C+创建Windows应用商店应用程序和游戏。 在多个处理器可用时,可对应用程序进行配置,以更快速、高效地运行。 使用多核CPU对应用程序进行配置,以更快速地运行。 利用高效GPU提高性能。本课程的VC部分,采用Visual C+ 2012(简称为VC12)中文旗舰版作为教学版

13、本,主要内容为传统Windows应用程序的MFC编程。课件中的大部分MFC程序代码也适用于老版本的Visual C+ 6.0/.NET/2005/2008/2010(项目需要自动转换,而且对6.0版的老程序可能还需要修改项目属性中的字符集设置从默认的“使用Unicode字符集”改为“使用多字节字符集”)。本课程中的所有例子都在Windows 7 SP1的64位中文旗舰版下运行通过。2.1.3 编程平台Visual C+编程平台可以开发多种Windows应用程序,还能为用户项目自动创建若干相关目录和各种有关文件。1开发种类VC主要可以开发下列四类程序: Win32:直接使用C/C+语言和Win3

14、2/64 API来开发传统的Windows应用程序(本章会略有涉及,以后将不再介绍)。 MFC:使用MFC类库来开发C+语言的Windows应用程序(是本课程讲授的重点内容)。 ATL:使用ATL来为开发COM(Component Object Model,组件对象模型)对象ActiveX控件(本课程不讲,只会在16.2.3小节的组件编程中,简介使用现有ActiveX控件进行应用编程)。 CLR:使用MC+或C+/CLI开发基于.NET框架类库的CLR程序(本课程不讲,只介绍如何使用Visual C# 来进行.NET编程)。VC还可以用于开发本地应用程序(常规)和包含测试的项目(测试),参见图

15、2-2。图2-2 Visual C+可创建的新项目种类2解决方案与项目VC开发环境把应用程序放在解决方案(solution)中管理(解决方案对应于文件*.sln),一个解决方案中可以有多个项目(project,工程)(项目对应于文件*.vcproj或*.vcxproj),每个项目对应于一个应用程序(application)、动态链接库(DLL)、或COM组件(如ActiveX控件)。可通过双击sln文件或vcxproj文件来启动VS/VC并装入对应的解决方案和项目。在开发过程中,VC会自动创建若干目录(参见表2-1)和多种文件(参见表2-2)。其中的解决方案目录,用于多个项目的联合开发,在本课

16、程中没有使用。可以在创建新项目时,去选“新建项目”对话框右下部的“为解决方案创建目录”复选框,以避免多创建(对简单程序是多余的)一层解决方案项目,从而简化开发。表2-1 VC自动创建的目录目录名说明用户命名的程序名解决方案目录(可无)项目目录(为解决方案目录的子目录)Debug调试目录(为解决方案和项目目录的子目录)Release发行目录(为解决方案和项目目录的子目录)res资源目录(为项目目录的子目录)ipch用于智能感知的预编译头文件目录(为解决方案或项目目录的子目录,是VC10新增加的)x6464位应用程序目录(包含Debug和Release子目录)表2-2 VC自动创建的文件类型(按字

17、母升顺序排列)扩展名所在目录bmp位图(工具条位图Toolbar.bmp)cpp项目C+源代码depDebug|Release清单依存(mt.dep,VC10无)exe可执行文件h头文件ico图标idb最小重建依存ilk增量连接器lastbuildstate最后生成状态(VC10新引进)log日志(老版本为生成日志BuildLog.htm)manifest程序清单(XML文档)sdf方案|项目智能感知数据库(老版本为ncb)obj编译后的对象pch预编译头文件pdb程序调试数据库rc项目| Debug|Release资源脚本rc2非VC资源编辑器生成的资源脚本已编译的资源脚本sln解决方案su

18、o解决方案用户选项tlog模板日志(命令和读写等,VC10新引进)txt文本(ReadMe.text)user项目用户选项vcxprojVC项目(XML文档,老版本为vcproj)在这些目录和文件中,只有方案和项目目录及其中的*.sln、*.vcxproj、*.h、*.cpp、*.rc等文件和整个res子目录是编译所必须的,其他目录和文件都可以由VC自动重新生成。因此,为了节省存储空间,在保存和上交MFC程序的项目源代码时,不须保留占用大量空间的Debug、Release和ipach等目录和*.sdf等文件。3窗口组成VS/VC开发平台的主窗口(括号中为所在位置)由如下几个部分组成(参见图2-

19、3):图2-3 Visual C+ 2012的界面 标题条(顶):显示当前开发的应用程序名,形为:应用程序名 Microsoft Visual Studio。 菜单栏(上):包含文件、视图、项目、生成、调试、工具、测试、窗口、社区、帮助等菜单,可完成VS/VC的所有功能。 工具条(上):包含若干图形按钮和下拉式列表框,对应于某些常用的菜单项或命令的功能,简单形象,可方便用户操作。 项目工作区(中左):包含解决方案资源管理器、类视图、属性管理器、资源视图等多个页面,用于组织和选择项目、文件、类和资源,配置项目属性等。 编辑区(中中):用于程序的源代码和资源的编辑,含起始页。 属性/工具区(右边)

20、:包含属性窗口、工具箱等可以滑出的隐藏页面。 输出区(中下):包含输出、代码定义窗口和调用浏览器等页面,用于显示操作的结果和出错信息、相关定义和帮助信息等。 状态条(底):显示当前操作或所选菜单/图标的提示信息。注意:在第一次启动VS时,可以选择一种开发环境的种类,常用的是“Visual C+开发设置”、“Visual C# 开发设置”和“常规开发设置”。也可以在以后的开发过程中,通过选择“工具导入和导出设置”菜单项,打开“导入和导出设置向导”对话框,来重新设置开发环境的种类,包括导入已有的设置、导出当前的设置、或重置为某种语言工具的默认设置,参见图2-4。图2-4 重置VS的开发环境的种类上

21、面描述的是“Visual C+开发设置”的默认环境。VS的开发环境还可以通过手工拖动、钉住等操作,或选择“视图”菜单中的各种菜单项来进行修改和调整。4命令操作方法与其他应用程序一样,在VS/VC中,同样的操作可以用三种不同的方法来完成: 选菜单项:功能全、层次多、操作慢,如“调试启动调试”。 按工具条上的图标按钮:形象、较快、功能不全,如。 按快捷健:快、开始时难记、功能不太全,如F5。有工具条按钮的菜单项的左边有对应的按钮图标,有快捷健的菜单项的右边还写有快捷(组合)健,如调试菜单中的启动调试菜单项形为2.1.4 宽字符由于Windows NT/2000/XP/Vista/7/8的系统内部采

22、用的都是Unicode字符编码,所有字符(包括ASCII字符和汉字)都使用双字节编码。所以在Visual C+和MFC编程中,一般需要使用双字节的宽字符类型wchar_t和对应的字符数组及其指针类型。微软还为Win32 API定义了若干与宽字符有关的typedef类型(如WCHAR和LPWSTR)。宽字符类型和函数是C和C+标准(ANSI/ISO/IEC C 1999和ISO/IEC C+ 1998/2003)新增加的内容,用于支持国际通用的Unicode(1993)字符集。微软公司从Visual C+ 2005版起,开始严格执行C+的最新国际标准。安全CRT函数是微软公司对C/C+语言的扩展

23、(以防止字符串越界),其中的部分内容已于2003年提交给ISO作为C/C+标准下一版本的修改建议。在VC10中,如果不使用这些安全性函数(一般在原函数后添加“_s”后缀,并增加了一个字符缓冲区大小参数)或对应的CRT函数没有字符计数参数,编译器就会报告警告性错误。在MFC编程中,一般需要使用双字节的字符类型wchar_t和对应的字符串及其指针类型LPCWSTR和LPCTSTR,并在常数字符串前添加了L转换运算符,串长计算函数不能用strlen而改用wcslen,串格式打印函数也不能用sprintf,而是改用swprintf或swprintf_s,其中的字符和串格式符也从%c和%s改为%lc和%

24、ls。例如:wchar_t *wstr = LA string to a wide character string.;int n = wcslen(wstr);wchar_t buf80;/ 原始CRT版本,编译时会发出警告:/swprintf(buf, LYour string is : %ls, wstr); / 警告/ 有字符计数的CRT版本,编译时不会发出警告:swprintf(buf, 80, L / 正确/ 微软安全版本,编译时也不会发出警告:/swprintf_s(buf, 80, L1宽字符类型wchar_t类型,在标准C+中为内置的数据类型和关键字,在C标准中则只是type

25、def类型。类型名wchar_t源于wide character type(宽字符类型),而后缀_t为C语言对typedef类型的一种命名约定。为了与C语言和旧代码兼容,在C+标准中保留了该类型名。wchar_t数据类型的具体实现与各个C/C+编译器有关,在Win32/64和VC中定义为:typedef unsigned short wchar_t; (16位的双字节无符号短整数)为了实现跨平台(如Win16/32/64),在Windows API中重新定义了多种数据类型。下面是在Win32 API中定义的与(宽)字符有关的部分常用typedef类型:typedef char CHAR; /

26、普通字符类型typedef CHAR *PCHAR, *LPCH, *PCH;typedef CONST CHAR *LPCCH, *PCCH;typedef CHAR *NPSTR, *LPSTR, *PSTR;typedef CONST CHAR *LPCSTR, *PCSTR;typedef wchar_t WCHAR; / 宽字符类型typedef WCHAR *PWCHAR, *LPWCH, *PWCH;typedef CONST WCHAR *LPCWCH, *PCWCH;typedef WCHAR *NWPSTR, *LPWSTR, *PWSTR;typedef CONST WCHAR *LPCWSTR, *PCWSTR;#ifdef UNICODE / 使用Unicode字符typedef WCHAR TCHAR, *PTCHAR;typedef LPWCH LPTCH, PTCH;typedef LPWSTR PTSTR, LPTSTR;typedef LPCWSTR PCTSTR, LPCTSTR;typedef LPWSTR LP;#else / 不使用Unicode字符typedef char TCHAR, *PTCHAR;typedef LPCH LPTCH, PTCH;typedef LPSTR PTSTR

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

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