首页>参考读物>计算机科学与技术>软件与程序设计

Visual C++.NET程序设计从MFC到.NET类库
作者 : 彭忠良
出版日期 : 2003-09-01
ISBN : 7-111-12558-4
定价 : 45.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 405
开本 : 16开
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书讲解Visual C++.NET程序设计技巧,包括用MFC及.NEE类库编程两部分。本书内容详实,讲解透彻,包括精心设计的、有助于学习理解的80多个例程。作者于1995年至2002年期间在中科院计算所培训中心授课,在参考了几乎所有的微软所推荐的Visual C++参考书的基础上写成本书。此书凝聚了他多年执教的心得。
  本书附带光盘包含例程源代码,以方便读者使用。本书适合有一定基础的开发人员阅读。
  版权所有,侵权必究。

图书前言

经过六、七个月日以继夜的努力,本书终于可以“封顶”了。之所以能在较短的时间内完成本书,是因为有过去几年讲授VC++Windows程序设计的基础。本人从1995年至2002年期间在中国科学院计算所计算机培训中心讲授Windows程序设计。使用的工具从C开始,然后是VC++(从低版本到6.0),最后是VC++.NET版本。因此在本书即将出版的时候,我首先想到的是要感谢过去计算所VC++培训班的学员们。正是他们在培训期间,以认真的学习态度从各个不同的角度出发,向我提出了各种各样的问题和要求,促使我不断改进教学方法以及完善教
学内容,打下了写作本书的基础。
  本书是过去几年教学的经验总结,也是对VC++.NET新版本进一步学习理解的结果。本书的主要特点是:第一,可操作性特别强。例程的学习和操作过程写得非常详细,即使你是初学者也能操作学习。本书大部分例程还另附一个文本文件(工程名.txt),它包括操作细则及添加的具体代码。你可以拷贝代码到相应的类头文件及执行文件中,以便节省你输入代码的时间。第二,全书附有例程光盘,共80个例程。这些例程不仅帮助你学习理解程序设计概念,而且这些例程的代码有可能成为将来你的应用系统代码的一部分。同时,它们本身就是一个实用小程序。例如Printl可以灵活打印及预览九种格式的位图;UseUDDll可在Internet网上检测Email地址的正确性;UseUDDl2可以检测信用卡号的正确性,等等。通过这些例程可以使你的学习由浅人深。第三,对于一些难懂的编程概念,本书作了反复推敲,精心设计,使你易于理解掌握。综合上述特点,本书一定能起到让你学懂掌握VC++.NEY这个强大的编程工具、大大缩短你的学习周期的作用。
  VisualC++.NET是Microsoft的新一代VisualC++语言。VisualC++一直是用于创建高性能的Windows和Web应用程序与Web服务的最佳语言。微软公司自喻VBlldC++是所有开发语言及工具中的“旗舰”。VisualC++提供过许多有助于对应用程序进行编码的重要的库,其中包括MFC微软基础类库(一套支持WindowsAPl用于创建各种Windows应用程序的C++类)、ATL活动模板库(一套用于COM对象的基于模板的C++类)和ATLServer库(一套用于创建Web应用程序、Web服务和其他服务器应用程序的C++类)。用这些库创建的应用程序代码在.NEW框架环境中叫非托管代码(unmanagedcode)。在.NEY框架中还有一个新创建的、大而复杂的、由三种开发语言(VisualC++.NET、Visual Basic.NET和VisualC#.NET)共同使用的.NEW框架类库。使用这个类库开发的应用程序代码叫托管代码(managed code)。
  本书包括了两部分内容,共26章。第一部分是采用MFC类库开发各种Windows应用程序。微软将MFC作为一种标准来推广,到了VC++6.0已经发展得相当完美。但在.NET版本中又有修改与提高。类库作了适当的扩充;ADO数据库访问组件作了全新改造;支持HTML格式帮助文件;更加方便地打包发行程序,这些都吸引着你从VC++6.0升级到VC++。NET。这部分具体内容有:类库简介、编程环境、Windows窗口各种界面(对话框、控件、菜单、工具条、状态条)、图形文字输出、文档视窗结构、单文档及多文档应用、内存管理、多线程编程、动
态链接库、ADO数据库访问、打印及打印预览、帮助等。第二部分内容是讨论用.NET框架类库开发各种Windows和Web应用程序。这个类库是三种语言(VC++、VB、C#)共同使用的。它结构庞大,功能极强。以GDI+部分对各种位图的支持为例,其中Graphics类的Drawlmage方法就同时支持九种位图格式。使用这个类库你可以方便地编制XMLWeb服务、在Internet网上用ADO实现对数据库访问等应用程序。从而使你体会到VC++.NET的强大功能和魅力。这部分具体内容有:.NET框架类库及开发环境、Windows窗体、VisualC++扩展重要概念介绍、控件、对话框、菜单、图形文字输出、打印及打印预览、ADO.NET数据库访问、XMLWeb服务、应用程序的部署等。
  这两个类库差别很大,它们的应用程序的开发风格也很不相同。但MFC毕竟是基础。有关“消息驱动”、“无效矩形区”等重要概念永远是Windows界面编程的基础。你可以根据自己具体情况选择这两部分的有关章节学习。
  本书的设计目标是中高级程序员。阅读本书要求有C++语言基础知识。
  由于作者本人的水平有限,难免在书中会出现错误。敬请广大读者批评指正。我的电子邮件地址是:zlpeng@public.bta.net.cn。欢迎读者来信帮助。
  最后,我要感谢我的爱妻及女儿。她们为本书做了大量的文字编辑工作。
  中国科学技术信息研究所 彭忠良
  2003年5月于北京

作者简介

彭忠良:暂无简介

图书目录

第一部分 用.NETMFC编程
第1章 MFC类库简介
1.1 Win32API及MFC
1.2 MFC的中文支持
1.3 Win9.x与NT平台
1.4 MFC的组成
1.4.1 MFC类库中最重要的三个类
1.4.2 MFC7.0类库层次结构全图
1.4.3 从应用程序角度对MFC类库分类
1.4.4 MFC类库的全局函数、全局变量、宏
1.5 MFC类库的主要文件

第2章 .NETMFC编程环境
2.1 应用向导
2.1.1 用应用向导生成一个应用框架
2.1.2 生成的主要的类及其作用
2.1.3 生成的其他主要文件及其作用
2.1.4 Debug与Release版本
2.1.5 退出或再次进入ex2工程
2.1.6 转移ex2工程
2.1.7 编译与连接ex2工程
2.1.8 执行ex2工程
2.2 视图菜单
2.3 类向导的几个主要功能
2.3.1 创建一个类
2.3.2 响应grln&~消息
2.3.3 增加一个成员变量
2.3.4 增加一个成员函数
2.3.5 覆盖一个虚函数
2.4 添加资源
2.5 Debug与TRACE宏
2.6 其他工具

第3章 消息映射
3.1 消息驱动
3.2 消息映射机制
3.3 0nPaint及OnDraw函数
3.4 例程
3.4.1 ex31例程
3.4.2 ex32例程

第4章 设备环境类及绘制工具类
4.1 CDC类及其派生类
4.1.1 CDC类
4.1.2 CDC类及其派生类的使用
4.1.3 无效矩形区
4.1. 4  ex41例程
4.2 CDC类的属性
4.3 逻辑坐标与物理坐标
4.3.1 逻辑坐标与物理坐标
4.3.2 映射方式
4.3.3 ex42例程
4.4 视图类的两个函数及窗框类的一个函数
4.4.1 视图类的PreCreateWindow函数
4.4.2 窗框类的PreCaeateWindow函数
4.4.3 视图类的OnPrepareDC
4.5 GDI对象
4.5.1 六个GDI对象
4.5.2 CPen、CFont、CBrush的使用
4.5.3 ex43工程
4.5.4 CRgn的使用
4.5.5 ex44工程
4.6 ex45例程

第5章 位图与调色板
5.1 与设备无关的位图类CBitmap
5.2 BMP位图文件的格式
5.3 CBilmap的使用方法
5.4 位图例程
5.4.1 ex51例程
5.4.2 OpenBmpFile例程
5.4.3 SunRises例程
5.5 调色板类CPalette
5.5.1 CPalette的使用场合
5.5.2 Palette例程
5.6 绘制工具类对象的句柄表示

第6章 控件与对话框
6.1 控件
6.1.1 控件的定义
6.1.2 控件的种类
6.2 Windows的公共控件
6.2.1 公共控件的种类
6.2.2 ex60工程
6.2.3 对Win3.x中的六种控件的事件处理
6.2.4 对在Win9.x中开始使用的控件的事件处理
6.2.5 对控件进行操作的一般方法
6.3 公共控件使用例程
6.3.1 CtrlAnimate例程
6.3.2 CtrtBitmapButton例程
6.3.3 CtrlButton例程
6.3.4 CtrlComboBox例程
6.3.5 CtdEditandListBox例程
6.3.6 CtrlExComboBox例程
6.3.7 CtrlHeader例程
6.3.8 CtrlHotKey例程
6.3.9 Ctrllist例程
6.3.10 CtrlSlider例程
6.3.11 CtrlSpin例程
6.3.12 CtrlTab例程
6.3.13 CtrlPicture例程
6.3.14 CtrlTree例程
6.4 提示信息框
6.5 模式对话框
6.5.1 模式对话框的设计
6.5.2 DoModal函数
6.5.3 改造OnOK函数
6.6 Tab页对话框
6.6.1 Tab页对话框
6.6.2 CtrlTabSheet例程
6.7 公用对话框
6.8 无模式对话框
6.8.1 无模式对话框
6.8.2 无模式对话框例程

第7章 菜单及键盘加速键
7.1 主框架窗口类CMainframe
7.2 菜单
7.3 菜单命令消息的处理
7.4 键盘加速键
7.5 常规菜单例程ex71
7.6 菜单的其他形式
7.6.1 二级菜单
7.6.2 浮动菜单
7.6.3 两套以上菜单

第8章 工具条及状态条
8.1 工具条类及状态条类
8.2 工具条
8.2.1 一般情况
8.2.2 显示或隐藏工具条
8.2.3 两套菜单及工具条例--ex70第三步
8.3 状态条
8.3.1 状态条定义
8.3.2 在状态条上显示提示信息
8.3.3 状态指示器
8.3.4 重新定义状态条
8.3.5 状态条例程ex81
8.3.6 状态条例程ex82

第9章 文档视图结构
9.1 应用程序中的主要对象
9.2 文档/视图结构
9.3 文档类
9.4 视图类

第10章 单文档应用及窗口切分
10.1 单文档应用程序的启动、运行过程
10.2 文档模板类
10.3 OnFileNew函数
10.4 Initlmtanee函数
10.5 Onldle函数
10.6 File菜单下的四条命令的执行
10.7 文档模板字符串
10.8 例程
10.8.1 SDI例程
10.8.2 Edit例程
10.8.3 Form例程
10.8.4 SDl2例程
10.8.5 SDIMV例程--多视及窗口切分
10.9 单文档应用中各个类之间的关系

第11章 多文档应用与序列化及窗口切分
11.1 多文档应用的框架窗口类
11.2 主框架窗口与子框架窗口之间的关系
11.3 多文档应用文档模板类
11.4 InitInstance函数
11.5 OnFileNew函数
11.6 多文档应用各个类对象创建过程
11.7 多文档应用各个类之间关系
11.8 例程
11.8.1 MDI例程
11.8.2 MScribble例程
11.8.3 SScribble例程
11.8.4 mdiEdit例程
11.8.5 MDIMV例程--多视及窗口切分
11.9 序列化
11.9.1 使类序列化的条件
11.9.2 集合类及其在序列化中的应用
11.9.3 序列化的其他问题
11.10 主框架窗口的有关消息
11.11 多视及窗口切分

第12章 内存管理
12.1 内存分配的五种途径
12.2 虚拟内存
12.3 Win95及Nr的地址空间的分布
12.4 堆及栈
12.5 GlobalAlloc及IocalAlloc函数
12.6 CRT函数
12.7 内存映射文件
12.8 直接分配虚拟内存
12.9 Memory例程
12.10 内存疏漏

第13章 多线程编程
13.1 基本概念
13.2 工作者线程编程
13.2.1 开始一个工作者线程
13.2.2 终止一个工作者线程
13.2.3 主线程与工作者线程之间的同步
13.2.4 自定义Windows消息
13.2.5 BkWork例程
13.3 用户接口线程
13.3.1 用户接口线程的创建、运行、终止
13.3.2 UIT例程

第14章 动态链接库
14.1 基本概念
14.2 动态链接库的分类
14.3 常规与扩展DIL的制作及使用--MakeDll例程
14.4 可执行文件对DIL的调用方法
14.4.1 隐式链接
14.4.2 显式链接

第15章 MFCADO数据库访问
15.1 ADO基本概念
15.2 ADO例程ADODB

第16章 打印及打印预览
16.1 打印
16.1.1 你在打印中的任务与框架的任务
16.1.2 默认打印过程
16.1.3 打印命令的执行过程
16.1.4 如何控制打印页数
16.1.5 在打印文档中添加页眉和页脚
16.1.6 分配与释放GDI资源对象
16.2 打印预览
16.2.1 打印预览过程
16.2.2 修改打印预览
16.3 例程
16.3.1 例程1--所见即所得
16.3.2 例程2--多页打印

第17章 帮助文件
17.1 选"WinHelp格式"项生成帮助文件
17.1.1 生成的主要帮助文件及其作用
17.1.2 WinHelp.hpj文件
17.1.3 WinHelp.hm文件
17.1.4 WinHelp.rtf文件
17.1.5 WinHelp.hlp文件
17. 1.6 WinHelp.ent文件
17.2 "WinHelp格式"下的帮助例程
17.2.1 增加帮助内容
17. 2.2 F1及Shift+F1支持
17.2.3 直接调用增加的帮助内容
17.2.4 直接调用.Hlp帮助文件
17.3 选择"HTML帮助格式"项生成帮助文件
17.3.1 生成的主要帮助文件及其作用
17.3.2 调用帮助执行文件
17.4 "HTML帮助格式"例程
17.5  HTML帮助开发工具

第二部分 用.NET类库编程

第18章 .NET框架及类库
18.1  Visual C++.NET
18.2 .NET框架
18.2.1 公共语言运行库
18.2.2 中间语言
18.2.3 公共类型系统
18.2.4 公共语言规范
18.2.5 .NET框架类库
18.3 第一个托管C++应用ex181
18.4 .NET框架类库命名空间
l8.4.1 在托管C++程序中使用命名空间
18.4.2 System命名空间
18.4.3 System::Collections命名空间
18.4.4 System::10命名空间
18.4.5 Forms命名空间
18.4.6 其他命名空间简介

第19章 Windows窗体
19.1 什么是WindowsForms
19.1.1 WindowsForms与设计程序
19.1.2 WindowsForms与MFC
19.2 WindowsForms命名空间
19.3 使用Forms
19.3.1 WForml例程
19.3.2 Form类的属性、方法和事件
19.3.3 WForml_1例程
19.4 委托与事件
19.4.1 委托
19.4.2 Delegatel例程
19.4.3 事件
19.4.4 Eventl例程
19.5 事件与消息
19.5.1 鼠标与键盘等事件
19.5.2 Event2例程

第20章 控件与对话框
20.1 在窗口上放置两个按钮--FormButton例程
20.2 控件种类
20.2.1 从Control类派生的控件
20.2.2 从Component类派生的控件
20.3 普通对话框
20.3.1 Dialogl例程
20.3.2 Dialog2例程
20.3.3 公用对话框例程Dialog3
20.4 控件进一步使用--Calculator例程

第21章 菜单
21.1 常规菜单
21.2 菜单事件处理
21.3 菜单属性Enabled and Checked
21.4 浮动菜单
21.5菜单例程Notepaper

第22章 图形文字输出
22.1 GDI+
22.1.1 什么是GDI+
22.1.2 GDI+的功能
22.1.3 GDI+新增功能
22.1.4 GDI+托管类接口
22.2 GDI+托管类的命名空间
22.2.1 四个命名空间
22.2.2 System::Draing命名空间
22.3 Craphics类及Color结构
22.3.1 Graphics类
22.3.2 Color结构
22.4 例程
22.4.1 Graphicsl例程
22.4.2 Craphics2例程

第23章 打印及打印预览
23.1 打印及打印预览概述
23.2 Printl例程--打印及预览各种单页位图
23.3 Print2例程--打印及预览单页文本
23.4 多页打印

第24章 ADO.NET数据库访问
24.1 ADO.NET概述
24.1.1 ADO.NET的设计目标
24.1.2 ADO.NET结构简介--DataSet及数据提供程序
24. 1.3 ADO.NET名字空间及皿文件
34.1.4 ADO.NET平台要求
24.2 第一种应用方式--ADONET1例程
24.3 第二种应用方式--ADONE32例程

第25章 XMLWeb服务
25.1 XMLWeb服务概述
25.2 XMLWeb服务实例MCPPWSl
25.2.1 MCPPWSl--托管C++XMLWeb服务
25.2.2 MCPPWSlSeh甲--安装MCPPWSl服务
25.2.3 调用MCPWSl服务--托管C++应用UseMCPPWSl
25.3 用UDDI创建托管C++应用
25.3.1 UseUDDI1例程
25.3.2 UseUDDI2例程
25.4 XMLWebService概念补充
25.4.1 XML
25.4.2 XMLWeb服务通讯协议
25.4.3 Web服务描述语言WSDL
25.4.4 UDDl
25.4.5 XMLWeb服务名字空间
25.4.6 XMLWeb服务小结

第26章 应用程序的部署
26.1 在目标机器上安装公共语言运行库
26.2 打包.NET框架下开发的应用程序
26.2.1 打包托管C++应用程序
26.2.2 打包MFC开发的应用程序
26.3 应用程序打包和分发的类型
26.3.1 打包类型
26.3.2 分发类型
附录A Form类的全部成员
附录B P/Invoke--托管代码与非托管
代码之间的桥梁

教学资源推荐
作者: 管建和
作者: [美]梁勇(Y. Daniel Liang)阿姆斯特朗亚特兰大州立大学 著
作者: [美]贝赫鲁兹·A. 佛罗赞(Behrouz A.Forouzan) 理查德·F. 吉尔伯格(Richard F. Gilberg) 著
作者: 钱晓捷 编著
参考读物推荐
作者: Michael Juntao Yuan Kevin Sharp
作者: 张秀宏 著
作者: 深圳中科呼图信息技术有限公司 编著