书籍详情
MFC应用开发教程
作者:(美)[V.布罗奎德]Vic Broquard著;汪泳等译;汪泳译
出版社:清华大学出版社
出版时间:1999-11-01
ISBN:9787900622273
定价:¥75.00
内容简介
简介本书适用于已经具备了MFC编程的基础知识,而又渴望扩充自己的能力和知识的读者。书中提供了众多的方法和技术,用于处理文档-视图体系结构、打印和预览、树形控件和列表控件、控制栏和对话栏、图形图像处理和调色板操作、数据库访问对象(DAO)类,以及增强型元文件。丰富的Internet类是VisualC十十5.0的新特性,在本书最后一章中,我们将介绍这些新特性并学习如何编写文件传输协议(FTP,filetransferprotocol)浏览器。在所给范例中,有些使用了App和Class向导,有些未用。所有的例子程序都是非常实用的应用程序,而不是小代码段,它们展示了如何把整个应用程序组合在一起。此外,我们还将讨论有效地利用系统注册表(systemRegistry)的各种方法。让我们以打印和与之相关的预览操作为例来看一下MFC的作用。在商业应用程序中,打印报表通常是应用程序中最重要的功能。在很多这类应用程序中,用户界面和程序操作仅仅是为打印作准备。无论是基于文字、基于图形,还是二者的结合,只要报表对你的应用程序而言是重要的,本书都可以助你一臂之力。本书将通过6个重要的范例演示如何处理打印/预览操作,它们分别适用于从文字到图形的每一种不同的应用。本书主要讲述MFC的中级技巧,例如如何用CListCtrl和字体枚举来创建字体选择控件,如何使用CTreeCtrl和ABC字符宽度,以及单词的换行技术。书中还深入地讲述了映射模式,列举了很多文本和图形缩放的例子,也浏览了CPtrArray和CObjList容器类。前七章主要讲述各种文档-视图(Document-View)结构的实现,并演示了序列化的方法。图形操作包括用世界坐标系来缩放、裁剪以及滚动位图(bmp)文件。另外,还深入讨论了颜色调色板,内容包括Identitypalettes,如何转换为灰度图像或者如何完成颜色调整。也涉及了WYSI-WYG操作。第8章和第9章利用新的DAO类来更新和查询MicrosoftAccess数据库,生成了精美的报表,并为树形控件和列表控件提供数据。第10章专门讲述了控制栏、对话栏和工具箱。在一个DAO例子中甚至还有动态分配二维数组的操作。第12章对增强型元文件做了一个综合考察。最后一章演示了用新的Internet类写一个FTP浏览器的方法。各章中的提示讲述的是如何有效地使用系统注册表(SystemRegistry),代替原来的位于Windows文件夹中的旧风格ini文件。如果读者不是MFC的中级程序员,但对WIN32风格的编程非常熟悉,那么本书也是一个学习MFC类方法的很有价值的工具,因为书中经常回顾一些主要的函数和方法,这些函数和方法将会非常有用。在刚开始的几章中,作者总是给出基本的C语言风格函数和与之对应的MFC的类和方法,这是因为MFC编程者总要借助WIN32编码。当使用增强型元文件的时候,这种情况就非常明显了。不要因为学习的是一些小的例子程序就感到烦恼。所有的中级MFC应用程序都可以在Windows95和WindowsNT平台运行。如果你在Windows3.1平台作开发工作,那么绝大多数概念仍然适用,只是读者需要对代码作一些改动,二者最大的差异在内存模式和体系结构方面。虽然书中简要介绍了C语言风格打印机的Escape打印代码,但是在打印方面主要的重点工作仍然是由MFC类封装起来的代码完成。作者使用了所有的标准的Print,PrintSet-up,PrintPreview和PageSetup对话框,还分别讨论了文档-视图(Doc-View)结构的应用程序和非文档视图(nonDoc-View)结构的应用程序的打印。演示了用于打印文本和图形的各种技巧,包括很多用于打印时缩放bmp文件的方法。还涉及了利用从MicrosoftAccess数据库中获得数据,来生成可打印的报表的方法。读者将会从中学到创建、使用、缩放和打印增强型元文件的方法。对于文本来讲,字体的问题很突出,所以我们一开始就讨论字体的细节,包括ChooseFonts公共对话框和CListCtrl字体枚举控件,类似在商业字处理器中用到的那样。本书甚至也在一定程度上涵盖了对话框和自动数据传输。本书中还有6个以PrintingSituation#n作为开头的部分。为了便于快速参考。它们分别简洁地定义在程序例子中用到的打印过程的各个方面。对于编码风格,有两点要注意。作者讲授编程课程已有16年以上的历史了就像读者已经意识到的那样,Wind0ws编程涉及大量的标识符、关键值和API以及类的成员函数。名字空间的复杂程度除了编写操作系统外,超过了任何一个作者所见过的程序。那些必须的名字和标识符的数量之多,除了让读者不知所措外,没有其他的意义。实际上,我仍然记得在我第一次教Windows编程的学期中,花了很多的时间来试图解决哪些名字是必须精确编码的,哪些是可以任意控制的。本书的一个主要特点是,读者哪些名字是必须照原样输入的,比如MFC类的一部分,而哪些名字是可以任意控制的。所有用户定义的变量名称一般都是小写——如果是小写的话,那么应该可以由读者自己来命名。只有两个例外,一个是#define定义的名字,根据一般的编程约定,总是大写;另一个例外就是类成员函数名称,字母是大写的。另一个在示例中识别名字代码的办法是:如果名字使用的是匈牙利记法(Hungarian),那么它就是MFC的专用名字;如果不是,那就是程序员自己定义的名字。读者在自己的代码中可以用任何一种自己熟悉的命名约定,但是如果你参考本书的命名约定的话,可以免去或基本免去对名字的猜测之苦。当用ClassWizard生成代码时,类的成员的名字都用m开头,本书也采用了这种方法。作者对所有的代码都作了详细的归档处理。可以肯定地说,这些代码都是可读的,并且是可维护的。关于版权这里要说一句:书中的例子程序和代码,读者可以随意使用,不需要许可证。但是如果没有随意改变我的代码的话,能够对我说声谢谢可能会更好。当然,我对例子程序中的任何不好的影响都不负责——如果使用,就自己负责。我的mail地址是:Broquard@flink.com。请注意,本书是学习者的手册,不是专用的参考手册。因此,需要查询文档或者是“On—LineBooks”,因为那些编程人员会给你的产品提供参考或者更深入的细节。软件要求读者可以在WindoWs95或者是WindowsNT下,用MicrosoftVisualC十十5.0或者是更高的版本,编译运行所有的例子程序。在这里,编译链接用的是版本5.0。光盘中的发行版在建立的时候,用的是静态链接,这样就不需要再加载这个版本的MFCDLL。另外,也可以在版本4.2下编译所有的例子程序(除了最后一章中的Internet例子程序)。在发行版5.0中有哪些新的东西MFC5.0中新的项目包括Internet类,封装在WinInetWin32接口中。用这些新的类来访问网络是件非常容易的事情。同时也要注意,发行版本越小,执行的速度越快。全部的MFC都已经在速度上做了很大的优化。版本5.0也包括对ActiveX控件(OLE2和COM)的大量的新的支持,但是这已经超出了本书讨论的范围。配套光盘上的例子程序本书光盘上面有本书所有的例子程序的完整代码。由于篇幅的原因,本书中只节选了相关的部分。附录C中讲述了如何安装和使用光盘。所有的例子程序都包含可执行的版本和源文件以及工程文件。主要的子目录是IntermediateMFC。可执行程序的发行版在\Intermedi-ateMFC\Bin文件夹中,这样读者不需要在运行这些程序之前编译这些例子。但是,如果读者想在运行安装程序之前,就运行这些程序,还是请先阅读光盘上的readme文件,文件中将讲述如何正确的初始化系统注册表(SystemRegistry)。每一个例子程序都位于独立的文件夹中。文件夹的命名约定是PgmNNL,这里NN是章节号而L是字母,它用来区分一章中的多个程序。因此,名字为Pgm05b的文件夹包含的是第5章的第二个例子程序。\IntermediateMFC\Bmp文件夹中有一些bmp文件,这些文件在所有的程序中都会用到。一些可以查询的其他资源下面是一些关键的中级或者高级的MFC参考书。Blaszczak,M.《TheRevolutionaryGuidetoMFC4ProgrammingwithVisualC十十》,Chicago,IL:Wrox,1996。这本必备的书有大量的有用信息,特别是关于OLE的部分。ISBN1-874416-92-3Schmitt,D.《ExtendingtheMFCLibrary》,Reading,MA:AddisonWesley,1996。这本书为读者演示如何编写自己的MFC扩展类,甚至把它们变成DLL或者是OCX。ISBN0-201-48946-5Shepherd,G.和Wingo,S.《MFCInternals》,Reading,MA:AddisonWesley,1996。这本必备的书涵盖了MFC的内部设计,给读者一个更好的机会来继续阅读MFC源码本身。ISBN0-201-40721-3。Internet站点是免费的,并且也是不可缺少的。MicrosoftDeveloperNetworkOnLine:www.microsoft.com/msdn/default.htm.经过免费的登记过程之后,读者就可以浏览大量的MSDN资源了。
作者简介
暂缺《MFC应用开发教程》作者简介
目录
目录
简介
软件要求
在发行版5.0中有哪些新的东西
配套光盘上的例子程序
一些可以查询的其他资源
第1章 字体初步
1.1 使用注册表浏览已安装的字体
1.2 库存字体
1.3 物理设备及其规格
1.4 字体规格
1.5 向屏幕和打印机输出绘制文本的函数
1.5.1 DrawText函数
1.5.2 TabbedTextOut函数
1.5.3 TextOut函数
1.5.4 ExtTextOut函数
1.6 文本格式化函数
1.6.1 设置并获取背景模式
1.6.2 设置并获取背景色
1.6.3 设置并获取文本颜色
1.6.4 设置并获取文本对齐标准
1.6.5 使用文本调整
1.6.6 字符间距
1.7 示例程序Pgm01a
1.7.1 文件清单:FrameWin.h—Pgm01a
1.7.2 文件清单(摘录):FrameWincpp—Pgm01a
1.8 设计单位——一种供选择的量制
1.9 创建字体
1.9.1 LOGFONT结构
1.9.2 字体匹配或实现
1.9.3 指定磅值大小的方法
1.9.4 字体匹配处理
1.10 Pgm01b——字体映射示例
1.10.1 文件清单(摘录):Pgm1BApp.cpp—Pgm01b
1.10.2 文件清单(摘录):FrameWin.h—Pgm01b
1.10.3 文件清单(摘录):FrameWin.cpp—Pgm01b
1.10.4 文件清单(摘录):Pgmlb.rc—Pgm01b
1.10.5 文件清单(摘录):LogfontD1g.h—Pgm01b
1.10.6 文件清单(摘录):LogfontDlgcpp—Pgm01b
第2章 使用字体
2.1 简介
2.2 ChooseFonts通用对话框——CFontDialog
2.3 Windows95和WindowsNT内存分配
2.4 在Windows下的文件处理
2.4.1 长文件名
2.4.2 文件处理原则
2.4.3 使用WindowS文件函数
2.5 CFileDialog的实现
2.6 使用多行编辑控件——CEdit
2.6.1 CEdit控件提供的编辑特征
2.7 演示ChooseFonts通用对话框和CEdit控件的使用的样例程序——Pgm02a
2.7.1 文件清单(摘录):Pgm02a.rc—Pgm02a
2.7.2 文件清单(摘录):resource.h—Pgm02a
2.7.3 文件清单(摘录):FrameWin.h—Pgm02a
2.7.4 文件清单(摘录):FrameWincpp—Pgm02a
2.8 字体枚举函数
2.8.1 判别系统平台
2.8.2 Windows95字体枚举函数
2.8.3 WindowsNT字体枚举函数
2.8.4 样例程序Pgm02b
2.8.5 文件清单(摘录):FrameWin.h—Pgm02b
2.8.6 文件清单(摘录):FrameWin.cpp—Pgm02b
2.9 使用CListCtrl构造一个有用的字体枚举控件
2.9.1 文件清单(摘录):FrameWin.cpp—Pgm02c
2.9.2 文件清单(摘录):FontEnumDlg.h—Pgm02c
2.9.3 文件清单(摘录):FontEnumDlgcpp—Pgm02c
第3章 缩放方法和映射模式
3.1 映射模式——视口和窗口坐标
3.2 改变原点
3.3 改变范围或缩放比例
3.4 映射模式和舍入误差
3.5 计算磅值大小和ChooseFonts通用对话框
3.6 构造标尺
3.6.1 文件清单(摘录):RulerWin.h-Pgm03a
3.6.2 文件清单(摘录):RulerWin.cpp—Pgm03a
3.7 Pgm03a和文本显示方法
3.7.1 文件清单(摘录):FrameWin.h—Pgm03a
3.7.2 文件清单(摘录):FrameWin.cpp—Pgm03a
3.8 使用系统注册表
3.8.1 文件清单(摘录):IntermediateMFC.Reg
第4章 关于打印的基础内容
4.1 基本的打印方法
4.1.1 打印方法1:使用ScreenPaint函数打印图文混排的页面
4.1.2 打印方法2:打印多页文档或打印报表
4.2 调整页面大小
4.3 使用字体
4.4 后台打印过程
4.5 Pgm04a——打印方法1——使用一个两用画图函数
4.5.1 文件清单(摘录):Pgm04a.rc—Pgm04a
4.5.2 文件清单(摘录):PrintDlg.h—Pgm04a
4.5.3 文件清单(摘录):PrintDlg.cpp—Pgm04a
4.5.4 文件清单(摘录):FrameWin.h—Pgm04a
4.5.5 文件清单(摘录):FrameWin.cpp—Pgm04a
4.6 修改Print对话框中的数据
4.7 MFC的打印序列
4.8 通过PrintPage而不是OnPaint直接打印
4.9 打印情况1(Pgm04b)
4.10 创建一个程序文本编辑器(带有打印支持)—Pgm04b
4.10.1 文件清单(摘录):Pgm04b.rc—Pgm04b
4.10.2 文件清单(摘录):FontEnumDlg.h—Pgm04b
4.10.3 文件清单(摘录):FontEnumDlg.cpp—Pgm04b
4.10.4 PRINTDLG结构的部分清单
4.10.5 文件清单(摘录):FrameWin.h—Pgm04b
4.10.6 文件清单(摘录):FrameWin.cpp—Pgm04b
第5章 文档-视图体系结构和打印预览
5.1 简介
5.2 应用程序设计
5.2.1 打印情况#2(Pgm05a)
5.3 Pgm05a的文档视图实现
5.3.1 设计一个可串行化的SalesData类
5.3.2 文件清单(摘录):SalesDat.h—Pgm05a
5.3.3 文件清单(摘录):SalesData.cpp—Pgm05a
5.4 MFC文件处理:CFile类
5.5 MFC文档视图实现
5.5.1 文件清单(摘录):AcmeDoc.h—Pgm05a
5.5.2 文件清单(摘录):AcmeDoc.cpp—Pgm05a
5.6 Pgm05a和应用程序以及框架窗口的资源文件
5.6.1 文件清单(摘录):Pgm05a.rc—Pgm05a
5.6.2 文件清单(摘录):resource.h—Pgm05a
5.7 应用程序类—Pgm05aApp
5.8 重新查看系统注册表
5.8.1 文件清单(摘录):Pgm5aAppcpp—Pgm05a
5.9 主窗口类—FrameWin
5.9.1 文件清单(摘录):FrameWin.h—Pgm05a
5.9.2 文件清单(摘录):FrameWin.cpp—Pgm05a
5.10 窗口的附加修饰
5.10.1 用MFC实现窗口修饰
5.10.2 构造控制栏和状态栏
5.11 CView类:AcmeView和AcmePlot
5.11.1 文件清单(摘录):AcmeView.h—Pgm05a
5.11.2 文件清单(摘录):AcmeView.cpp—Pgm05a
5.12 AcmeView的打印和打印预览处理
5.13 AcmePlot视图类
5.13.1 文件清单(摘录):AcmePlot.h—Pgm05a
5.13.2 文件清单(摘录):AcmePlot.cpp—Pgm05a
5.14 在多文档界面中使用文档视图—Pgm05b
5.14.1 文件清单(摘录):Pgm5bApp.cpp—Pgm05b
5.14.2 文件清单(摘录):FrameWin.h—Pgm05b
5.14.3 文件清单(摘录):FrameWin.cpp—Pgm05b
5.14.4 文件清单(摘录):ChildWin.h—Pgm05b
5.14.5 文件清单(摘录):ChildWin.cpp—Pgm05b
5.14.6 文件清单(摘录):Pgm05b.rc—Pgm05b
第6章 所见即所得—— 词的换行和对齐
6.1 所见即所得的原则
6.1.1 打印情况#3(Pgm06a)
6.2 把文档类作为当前打印机的储存库
6.3 使用CScrollView类
6.4 示例程序Pgm06a——文本文件的所见即所得浏览器
6.4.1 文件清单(摘录):Pgm06a.rc—Pgm06a
6.4.2 文件清单(摘录):Pgm6aApp.h—Pgm06a
6.4.3 文件清单(摘录):Pgm6aApp.cpp—Pgm06a
6.4.4 文件清单(摘录):FrameWin.h—Pgm06a
6.4.5 文件清单(摘录):FrameWin.cpp—Pgm06a
6.4.6 文件清单(摘录):EditDoc.h—Pgm06a
6.4.7 文件清单(摘录):EditDoc.cpp—Pgm06a
6.4.8 文件清单(摘录):EdotView.h—Pgm06a
6.4.9 文件清单(摘录):EditViewcpp—Pgm06a
第7章 打印位图图像和处理颜色调色板
7.1 位图和DIB的比较
7.2 BitBlt
7.3 创建内存DC
7.4 用户改变显示器设置的影响
7.5 DIB和颜色调色板
7.5.1 文件清单(摘录):CDib.h—Pgm07a
7.5.2 文件清单(摘录):CDib.cpp—Pgm07a
7.6 处理颜色——调色板
7.7 显示DIB图像的方法
7.7.1 SetDIBitsToDevice方法
7.7.2 StretchDIBits方法
7.7.3 构造内存DC 的两种方法
7.7.4 为游戏动画构造高速内存DC的DIB区域方法
7.8 灰度转换
7.9 位图打印及颜色调整指南
7.10 在打印机上缩放DIB
7.11 Pgm07a——打印BMP文件
7.11.1 打印情况#4(Pgm07a)
7.11.2 文件清单(摘录):BmpDoc.h—Pgm07a
7.11.3 文件清单(摘录):BmpDoc.cpp—Pgm07a
7.11.4 文件清单(摘录):BmpView.h—Pgm07a
7.11.5 文件清单(摘录):BmpView.cpp—Pgm07a
7.12 注册表的含义
第8章 使用DAO进行数据报表打印
8.1 外部Access数据库
8.2 Pgm08a中用的DAO类
8.3 用AppWizard建立DAO框架
8.4 在Pgm08a中实现5个CDaoRrcordSet类
8.4.1 文件清单(摘录):DAOSales.h—Pgm08a
8.4.2 文件清单(摘录):DAOSales.cpp—Pgm08a
8.5 添加、更新和删除记录,剪贴板里的用户定义数据
8.5.1 文件清单(摘录):SalesView.h—Pgm08a
8.5.2 文件清单(摘录):SalesView.cpp—Pgm08a
8.5.3 文件清单(摘录):SalesDoc.h—Pgm08a
8.5.4 文件清单(摘录):Sa1esDoc.cpp—Pgm08a
8.6 使用5个记录集合,通过种类和项目累计总销售额——动态分配二维数组
8.6.1 文件清单(摘录):SalesViewcpp—Pgm08a
8.7 Pgm08a的打印操作
8.7.1 打印情况#5(Pgm08a)
8.7.2 文件清单(摘录):Pgm08a.cpp
8.7.3 文件清单(摘录):SalesView.cpp—Pgm08a
第9章 使用CTreeCtrl和ClistCtrl类处理DAO数据库中的数据
9.1 AccessWar数据库
9.2 Pgm09a的资源、应用程序和框架窗口类
9.2.1 文件清单(摘录):resource.h—Pgm09a
9.2.2 文件清单(摘录):Pgm09a.rc—Pgm09a
9.2.3 文件清单(摘录):FrameWin.h—Pgm09a
9.2.4 文件清单(摘录):FrameWincpp—Pgm09a
9.3 ChooseLandObjects对话框
9.3.1 文件清单(摘录):ChooseLandObjects.h—Pgm09a
9.4 树形控件和列表控件结构的细节
9.5 CTreeCtrl类的细节
9.6 CListCtrl类的细节
9.6.1 文件清单(摘录):ChooseLandObjects.cpp—Pgm09a
9.7 在Pgm09a中的一些DAO类
9.7.1 文件清单(摘录):DBLandNode0Name.h—Pgm09a
9.7.2 文件清单(摘录):DBLandNode0Name.cpp—Pgm09a
9.7.3 文件清单(摘录):DBLandNodeQueryFwd.h—Pgm09a
9.7.4 文件清单(摘录):DBLandNodeQueryFwdcpp—Pgm09a
第10章 深入了解控件、对话栏和工具栏
10.1 基本工具栏——使用CToolBar类
10.2 创建浮动调色板——从CToolBar中派生
10.2.1 文件清单(摘录):PaletteBox.cpp—Pgm10a
10.3 处理状态栏
10.4 动态获取状态栏或者主工具栏指针
10.5 编辑栏——在工具栏中放置组合框
10.5.1 文件清单(摘录):EditBar.h—Pgm10a
10.5.2 文件清单(摘录):EditBar.cpp—Pgm10a
10.5.3 文件清单(摘录):FontEnumCBox.h—Pgm10a
10.5.4 文件清单(摘录):FontEnumCBoxcpp—Pgm10a
10.6 使用CDialogBar
10.6.1 OptionsBar
10.6.2 文件清单(摘录):OptionsBar.h—Pgm10a
10.6.3 文件清单(摘录):OptionsBar.cpp—Pgml0a
10.6.4 MapLocalStatsBar——在CDialogBar文本控件中显示信息
10.6.5 文件清单(摘录):MapLocalStatsBar.h—Pgm10a
l0.6.6 文件清单(摘录):MapLocalStatSBar.cpp—Pgm10a
10.7 使用私有ini文件
10.8 MapControlBar—综合应用文本和CBitmapButton
10.8.1 文件清单(摘录):MapControlBar.h—Pgm10a
10.8.2 文件清单(摘录):MapControlBarcpp—Pgm10a
10.9 控制三个对话栏的初始位置
10.10 用系统注册表存储并恢复工具栏状态
10.11 存储并恢复主窗口位置
10.12 GeoDoc和GeoView类
第11章 复杂的文档处理
11.1 打开文档文件的框架动作
11.2 Pgmlla第一次运行的配置工作
11.3 头数据类
11.3.1 文件清单(摘录):HeadData.h—Pgm11a
11.3.2 文件清单(摘录):HeadData.cpp—Pgmlla
11.4 Pgmlla的资源和应用程序类
11.4.1 文件清单(摘录):Pgmllarc
11.4.2 文件清单(摘录):Pgm11a.h
l1.4.3 文件清单:Pgmlla.cpp
11.5 主要的颜色调色板
11.5.1 文件清单(摘录):Palette.h—Pgmlla
11.6 MainFrame类
11.6.1 文件清单(摘录):MainFrame.h—Pgm11a
11.6.2 文件清单(摘录):MainFrame.cpp—Pgm11a
11.7 HeadDoc和HeadView类
11.7.1 文件清单(摘录):HeadDoc.h—Pgm11a
11.7.2 文件清单(摘录):HeadDoc.cpp—Pgm11a
11.7.3 文件清单(摘录):HeadFrame.cpp—Pgmlla
11.7.4 文件清单(摘录):HeadView.h—Pgm11a
11.7.5 文件清单(摘录):HeadView.cpp—Pgm11a
11.8 ControlDoc和ControlView类
11.8.1 文件清单(摘录):ControlDoc.h—Pgm11a
11.8.2 文件清单(摘录):ControlDoccpp—Pgm11a
11.9 屏幕外缓冲区类
11.9.1 文件清单(摘录):BitmapDC.h—Pgm11a
11.9.2 文件清单(摘录):BitmapDC.cpp—Pgm11a
11.10 GameDoc和GameFrame类
11.10.1 文件清单(摘录):GameDoc.h—Pgmlla
11.10.2 文件清单(摘录):GameDoc.cpp—Pgmll,
11.10.3 文件清单(摘录):GameFramecpp—Pgm11a
11.11 GameView,PlayerView和OtherView类
11.11.1 文件清单(摘录):GameView.h—Pgm11a
11.11.2 文件清单(摘录):GameView.cpp—Pgmlla
11.11.3 文件清单(摘录):PlayerView.h—Pgmlla
11.11.4 文件清单(摘录):PlayerView.cpp—Pgm11a
11.11.5 文件清单(摘录):OtherView.h—Pgmlla
11.11.6 文件清单(摘录):OtherViewcpp—Pgmlla
第12章 增强型元文件和打印
12.1 运行中的Pgm12a程序
12.2 构造增强型元文件的整体设计原则
12.3 在增强型元文件中使用字体
12.4 用CMetaFileDC 生成一个增强型元文件
12.5 避免绘图过程中潜在的问题
12.6 坐标映射和世界坐标转换
12.7 Pgm12a的实现
12.7.1 文件清单(摘录):Pgm12a.rc
12.7.2 Pgm12a的文档类—GraphDoc
12.7.3 文件清单(摘录):Function.h—Pgm12a
12.7.4 文件清单(摘录):Function.cpp—Pgm12a
12.7.5 文件清单:SincFunction.h—Pgm12a
12.7.6 文件清单(摘录):SincFunction.cpp—Pgm12a
12.7.7 文件清单(摘录):GraphDoc.h—Pgm12a
12.7.8 文件清单(摘录):GraphDoc.cpp—Pgm12a
12.7.9 GraphView类
12.7.10 文件清单(摘录):GraphView.h—Pgm12a
12.7.11 文件清单(摘录):GraphView.cpp—Pgm12a
12.8 打印增强型元文件
第13章 介绍Internet类 —生成具有下载功能的FTP文件浏览器
13.1 在应用程序中增加Email支持
13.2 InternetMFC类
13.3 CInternetSession的详细说明
13.4 CFtpConnection类
13.5 CFtpFindFile类
13.6 Pgm13a—FTP浏览器和文件下载程序
13.7 Pgm13a的实现—FTP浏览器
13.7.1 文件清单(摘录):URLToolBar.h
13.7.2 文件清单(摘录):URLToolBar.cpp
13.7.3 文件清单(摘录):URLEdit.cpp
13.8 View类和ClistCtrl类
13.9 SiteList(CListCtrl)类
13.9.l 文件清单(摘录):SiteList.h
13.9.2 文件清单(摘录):SiteList.cpp
13.10 FTPView类
13.10.1 文件清单(摘录):FTPView.h
13.10.2 文件清单(摘录):FTPView.cpp
13.11 改进浏览器
附录A 字体的基本术语
附录B Windows的新的堆内存函数
附录C 如何使用本书配套光盘
简介
软件要求
在发行版5.0中有哪些新的东西
配套光盘上的例子程序
一些可以查询的其他资源
第1章 字体初步
1.1 使用注册表浏览已安装的字体
1.2 库存字体
1.3 物理设备及其规格
1.4 字体规格
1.5 向屏幕和打印机输出绘制文本的函数
1.5.1 DrawText函数
1.5.2 TabbedTextOut函数
1.5.3 TextOut函数
1.5.4 ExtTextOut函数
1.6 文本格式化函数
1.6.1 设置并获取背景模式
1.6.2 设置并获取背景色
1.6.3 设置并获取文本颜色
1.6.4 设置并获取文本对齐标准
1.6.5 使用文本调整
1.6.6 字符间距
1.7 示例程序Pgm01a
1.7.1 文件清单:FrameWin.h—Pgm01a
1.7.2 文件清单(摘录):FrameWincpp—Pgm01a
1.8 设计单位——一种供选择的量制
1.9 创建字体
1.9.1 LOGFONT结构
1.9.2 字体匹配或实现
1.9.3 指定磅值大小的方法
1.9.4 字体匹配处理
1.10 Pgm01b——字体映射示例
1.10.1 文件清单(摘录):Pgm1BApp.cpp—Pgm01b
1.10.2 文件清单(摘录):FrameWin.h—Pgm01b
1.10.3 文件清单(摘录):FrameWin.cpp—Pgm01b
1.10.4 文件清单(摘录):Pgmlb.rc—Pgm01b
1.10.5 文件清单(摘录):LogfontD1g.h—Pgm01b
1.10.6 文件清单(摘录):LogfontDlgcpp—Pgm01b
第2章 使用字体
2.1 简介
2.2 ChooseFonts通用对话框——CFontDialog
2.3 Windows95和WindowsNT内存分配
2.4 在Windows下的文件处理
2.4.1 长文件名
2.4.2 文件处理原则
2.4.3 使用WindowS文件函数
2.5 CFileDialog的实现
2.6 使用多行编辑控件——CEdit
2.6.1 CEdit控件提供的编辑特征
2.7 演示ChooseFonts通用对话框和CEdit控件的使用的样例程序——Pgm02a
2.7.1 文件清单(摘录):Pgm02a.rc—Pgm02a
2.7.2 文件清单(摘录):resource.h—Pgm02a
2.7.3 文件清单(摘录):FrameWin.h—Pgm02a
2.7.4 文件清单(摘录):FrameWincpp—Pgm02a
2.8 字体枚举函数
2.8.1 判别系统平台
2.8.2 Windows95字体枚举函数
2.8.3 WindowsNT字体枚举函数
2.8.4 样例程序Pgm02b
2.8.5 文件清单(摘录):FrameWin.h—Pgm02b
2.8.6 文件清单(摘录):FrameWin.cpp—Pgm02b
2.9 使用CListCtrl构造一个有用的字体枚举控件
2.9.1 文件清单(摘录):FrameWin.cpp—Pgm02c
2.9.2 文件清单(摘录):FontEnumDlg.h—Pgm02c
2.9.3 文件清单(摘录):FontEnumDlgcpp—Pgm02c
第3章 缩放方法和映射模式
3.1 映射模式——视口和窗口坐标
3.2 改变原点
3.3 改变范围或缩放比例
3.4 映射模式和舍入误差
3.5 计算磅值大小和ChooseFonts通用对话框
3.6 构造标尺
3.6.1 文件清单(摘录):RulerWin.h-Pgm03a
3.6.2 文件清单(摘录):RulerWin.cpp—Pgm03a
3.7 Pgm03a和文本显示方法
3.7.1 文件清单(摘录):FrameWin.h—Pgm03a
3.7.2 文件清单(摘录):FrameWin.cpp—Pgm03a
3.8 使用系统注册表
3.8.1 文件清单(摘录):IntermediateMFC.Reg
第4章 关于打印的基础内容
4.1 基本的打印方法
4.1.1 打印方法1:使用ScreenPaint函数打印图文混排的页面
4.1.2 打印方法2:打印多页文档或打印报表
4.2 调整页面大小
4.3 使用字体
4.4 后台打印过程
4.5 Pgm04a——打印方法1——使用一个两用画图函数
4.5.1 文件清单(摘录):Pgm04a.rc—Pgm04a
4.5.2 文件清单(摘录):PrintDlg.h—Pgm04a
4.5.3 文件清单(摘录):PrintDlg.cpp—Pgm04a
4.5.4 文件清单(摘录):FrameWin.h—Pgm04a
4.5.5 文件清单(摘录):FrameWin.cpp—Pgm04a
4.6 修改Print对话框中的数据
4.7 MFC的打印序列
4.8 通过PrintPage而不是OnPaint直接打印
4.9 打印情况1(Pgm04b)
4.10 创建一个程序文本编辑器(带有打印支持)—Pgm04b
4.10.1 文件清单(摘录):Pgm04b.rc—Pgm04b
4.10.2 文件清单(摘录):FontEnumDlg.h—Pgm04b
4.10.3 文件清单(摘录):FontEnumDlg.cpp—Pgm04b
4.10.4 PRINTDLG结构的部分清单
4.10.5 文件清单(摘录):FrameWin.h—Pgm04b
4.10.6 文件清单(摘录):FrameWin.cpp—Pgm04b
第5章 文档-视图体系结构和打印预览
5.1 简介
5.2 应用程序设计
5.2.1 打印情况#2(Pgm05a)
5.3 Pgm05a的文档视图实现
5.3.1 设计一个可串行化的SalesData类
5.3.2 文件清单(摘录):SalesDat.h—Pgm05a
5.3.3 文件清单(摘录):SalesData.cpp—Pgm05a
5.4 MFC文件处理:CFile类
5.5 MFC文档视图实现
5.5.1 文件清单(摘录):AcmeDoc.h—Pgm05a
5.5.2 文件清单(摘录):AcmeDoc.cpp—Pgm05a
5.6 Pgm05a和应用程序以及框架窗口的资源文件
5.6.1 文件清单(摘录):Pgm05a.rc—Pgm05a
5.6.2 文件清单(摘录):resource.h—Pgm05a
5.7 应用程序类—Pgm05aApp
5.8 重新查看系统注册表
5.8.1 文件清单(摘录):Pgm5aAppcpp—Pgm05a
5.9 主窗口类—FrameWin
5.9.1 文件清单(摘录):FrameWin.h—Pgm05a
5.9.2 文件清单(摘录):FrameWin.cpp—Pgm05a
5.10 窗口的附加修饰
5.10.1 用MFC实现窗口修饰
5.10.2 构造控制栏和状态栏
5.11 CView类:AcmeView和AcmePlot
5.11.1 文件清单(摘录):AcmeView.h—Pgm05a
5.11.2 文件清单(摘录):AcmeView.cpp—Pgm05a
5.12 AcmeView的打印和打印预览处理
5.13 AcmePlot视图类
5.13.1 文件清单(摘录):AcmePlot.h—Pgm05a
5.13.2 文件清单(摘录):AcmePlot.cpp—Pgm05a
5.14 在多文档界面中使用文档视图—Pgm05b
5.14.1 文件清单(摘录):Pgm5bApp.cpp—Pgm05b
5.14.2 文件清单(摘录):FrameWin.h—Pgm05b
5.14.3 文件清单(摘录):FrameWin.cpp—Pgm05b
5.14.4 文件清单(摘录):ChildWin.h—Pgm05b
5.14.5 文件清单(摘录):ChildWin.cpp—Pgm05b
5.14.6 文件清单(摘录):Pgm05b.rc—Pgm05b
第6章 所见即所得—— 词的换行和对齐
6.1 所见即所得的原则
6.1.1 打印情况#3(Pgm06a)
6.2 把文档类作为当前打印机的储存库
6.3 使用CScrollView类
6.4 示例程序Pgm06a——文本文件的所见即所得浏览器
6.4.1 文件清单(摘录):Pgm06a.rc—Pgm06a
6.4.2 文件清单(摘录):Pgm6aApp.h—Pgm06a
6.4.3 文件清单(摘录):Pgm6aApp.cpp—Pgm06a
6.4.4 文件清单(摘录):FrameWin.h—Pgm06a
6.4.5 文件清单(摘录):FrameWin.cpp—Pgm06a
6.4.6 文件清单(摘录):EditDoc.h—Pgm06a
6.4.7 文件清单(摘录):EditDoc.cpp—Pgm06a
6.4.8 文件清单(摘录):EdotView.h—Pgm06a
6.4.9 文件清单(摘录):EditViewcpp—Pgm06a
第7章 打印位图图像和处理颜色调色板
7.1 位图和DIB的比较
7.2 BitBlt
7.3 创建内存DC
7.4 用户改变显示器设置的影响
7.5 DIB和颜色调色板
7.5.1 文件清单(摘录):CDib.h—Pgm07a
7.5.2 文件清单(摘录):CDib.cpp—Pgm07a
7.6 处理颜色——调色板
7.7 显示DIB图像的方法
7.7.1 SetDIBitsToDevice方法
7.7.2 StretchDIBits方法
7.7.3 构造内存DC 的两种方法
7.7.4 为游戏动画构造高速内存DC的DIB区域方法
7.8 灰度转换
7.9 位图打印及颜色调整指南
7.10 在打印机上缩放DIB
7.11 Pgm07a——打印BMP文件
7.11.1 打印情况#4(Pgm07a)
7.11.2 文件清单(摘录):BmpDoc.h—Pgm07a
7.11.3 文件清单(摘录):BmpDoc.cpp—Pgm07a
7.11.4 文件清单(摘录):BmpView.h—Pgm07a
7.11.5 文件清单(摘录):BmpView.cpp—Pgm07a
7.12 注册表的含义
第8章 使用DAO进行数据报表打印
8.1 外部Access数据库
8.2 Pgm08a中用的DAO类
8.3 用AppWizard建立DAO框架
8.4 在Pgm08a中实现5个CDaoRrcordSet类
8.4.1 文件清单(摘录):DAOSales.h—Pgm08a
8.4.2 文件清单(摘录):DAOSales.cpp—Pgm08a
8.5 添加、更新和删除记录,剪贴板里的用户定义数据
8.5.1 文件清单(摘录):SalesView.h—Pgm08a
8.5.2 文件清单(摘录):SalesView.cpp—Pgm08a
8.5.3 文件清单(摘录):SalesDoc.h—Pgm08a
8.5.4 文件清单(摘录):Sa1esDoc.cpp—Pgm08a
8.6 使用5个记录集合,通过种类和项目累计总销售额——动态分配二维数组
8.6.1 文件清单(摘录):SalesViewcpp—Pgm08a
8.7 Pgm08a的打印操作
8.7.1 打印情况#5(Pgm08a)
8.7.2 文件清单(摘录):Pgm08a.cpp
8.7.3 文件清单(摘录):SalesView.cpp—Pgm08a
第9章 使用CTreeCtrl和ClistCtrl类处理DAO数据库中的数据
9.1 AccessWar数据库
9.2 Pgm09a的资源、应用程序和框架窗口类
9.2.1 文件清单(摘录):resource.h—Pgm09a
9.2.2 文件清单(摘录):Pgm09a.rc—Pgm09a
9.2.3 文件清单(摘录):FrameWin.h—Pgm09a
9.2.4 文件清单(摘录):FrameWincpp—Pgm09a
9.3 ChooseLandObjects对话框
9.3.1 文件清单(摘录):ChooseLandObjects.h—Pgm09a
9.4 树形控件和列表控件结构的细节
9.5 CTreeCtrl类的细节
9.6 CListCtrl类的细节
9.6.1 文件清单(摘录):ChooseLandObjects.cpp—Pgm09a
9.7 在Pgm09a中的一些DAO类
9.7.1 文件清单(摘录):DBLandNode0Name.h—Pgm09a
9.7.2 文件清单(摘录):DBLandNode0Name.cpp—Pgm09a
9.7.3 文件清单(摘录):DBLandNodeQueryFwd.h—Pgm09a
9.7.4 文件清单(摘录):DBLandNodeQueryFwdcpp—Pgm09a
第10章 深入了解控件、对话栏和工具栏
10.1 基本工具栏——使用CToolBar类
10.2 创建浮动调色板——从CToolBar中派生
10.2.1 文件清单(摘录):PaletteBox.cpp—Pgm10a
10.3 处理状态栏
10.4 动态获取状态栏或者主工具栏指针
10.5 编辑栏——在工具栏中放置组合框
10.5.1 文件清单(摘录):EditBar.h—Pgm10a
10.5.2 文件清单(摘录):EditBar.cpp—Pgm10a
10.5.3 文件清单(摘录):FontEnumCBox.h—Pgm10a
10.5.4 文件清单(摘录):FontEnumCBoxcpp—Pgm10a
10.6 使用CDialogBar
10.6.1 OptionsBar
10.6.2 文件清单(摘录):OptionsBar.h—Pgm10a
10.6.3 文件清单(摘录):OptionsBar.cpp—Pgml0a
10.6.4 MapLocalStatsBar——在CDialogBar文本控件中显示信息
10.6.5 文件清单(摘录):MapLocalStatsBar.h—Pgm10a
l0.6.6 文件清单(摘录):MapLocalStatSBar.cpp—Pgm10a
10.7 使用私有ini文件
10.8 MapControlBar—综合应用文本和CBitmapButton
10.8.1 文件清单(摘录):MapControlBar.h—Pgm10a
10.8.2 文件清单(摘录):MapControlBarcpp—Pgm10a
10.9 控制三个对话栏的初始位置
10.10 用系统注册表存储并恢复工具栏状态
10.11 存储并恢复主窗口位置
10.12 GeoDoc和GeoView类
第11章 复杂的文档处理
11.1 打开文档文件的框架动作
11.2 Pgmlla第一次运行的配置工作
11.3 头数据类
11.3.1 文件清单(摘录):HeadData.h—Pgm11a
11.3.2 文件清单(摘录):HeadData.cpp—Pgmlla
11.4 Pgmlla的资源和应用程序类
11.4.1 文件清单(摘录):Pgmllarc
11.4.2 文件清单(摘录):Pgm11a.h
l1.4.3 文件清单:Pgmlla.cpp
11.5 主要的颜色调色板
11.5.1 文件清单(摘录):Palette.h—Pgmlla
11.6 MainFrame类
11.6.1 文件清单(摘录):MainFrame.h—Pgm11a
11.6.2 文件清单(摘录):MainFrame.cpp—Pgm11a
11.7 HeadDoc和HeadView类
11.7.1 文件清单(摘录):HeadDoc.h—Pgm11a
11.7.2 文件清单(摘录):HeadDoc.cpp—Pgm11a
11.7.3 文件清单(摘录):HeadFrame.cpp—Pgmlla
11.7.4 文件清单(摘录):HeadView.h—Pgm11a
11.7.5 文件清单(摘录):HeadView.cpp—Pgm11a
11.8 ControlDoc和ControlView类
11.8.1 文件清单(摘录):ControlDoc.h—Pgm11a
11.8.2 文件清单(摘录):ControlDoccpp—Pgm11a
11.9 屏幕外缓冲区类
11.9.1 文件清单(摘录):BitmapDC.h—Pgm11a
11.9.2 文件清单(摘录):BitmapDC.cpp—Pgm11a
11.10 GameDoc和GameFrame类
11.10.1 文件清单(摘录):GameDoc.h—Pgmlla
11.10.2 文件清单(摘录):GameDoc.cpp—Pgmll,
11.10.3 文件清单(摘录):GameFramecpp—Pgm11a
11.11 GameView,PlayerView和OtherView类
11.11.1 文件清单(摘录):GameView.h—Pgm11a
11.11.2 文件清单(摘录):GameView.cpp—Pgmlla
11.11.3 文件清单(摘录):PlayerView.h—Pgmlla
11.11.4 文件清单(摘录):PlayerView.cpp—Pgm11a
11.11.5 文件清单(摘录):OtherView.h—Pgmlla
11.11.6 文件清单(摘录):OtherViewcpp—Pgmlla
第12章 增强型元文件和打印
12.1 运行中的Pgm12a程序
12.2 构造增强型元文件的整体设计原则
12.3 在增强型元文件中使用字体
12.4 用CMetaFileDC 生成一个增强型元文件
12.5 避免绘图过程中潜在的问题
12.6 坐标映射和世界坐标转换
12.7 Pgm12a的实现
12.7.1 文件清单(摘录):Pgm12a.rc
12.7.2 Pgm12a的文档类—GraphDoc
12.7.3 文件清单(摘录):Function.h—Pgm12a
12.7.4 文件清单(摘录):Function.cpp—Pgm12a
12.7.5 文件清单:SincFunction.h—Pgm12a
12.7.6 文件清单(摘录):SincFunction.cpp—Pgm12a
12.7.7 文件清单(摘录):GraphDoc.h—Pgm12a
12.7.8 文件清单(摘录):GraphDoc.cpp—Pgm12a
12.7.9 GraphView类
12.7.10 文件清单(摘录):GraphView.h—Pgm12a
12.7.11 文件清单(摘录):GraphView.cpp—Pgm12a
12.8 打印增强型元文件
第13章 介绍Internet类 —生成具有下载功能的FTP文件浏览器
13.1 在应用程序中增加Email支持
13.2 InternetMFC类
13.3 CInternetSession的详细说明
13.4 CFtpConnection类
13.5 CFtpFindFile类
13.6 Pgm13a—FTP浏览器和文件下载程序
13.7 Pgm13a的实现—FTP浏览器
13.7.1 文件清单(摘录):URLToolBar.h
13.7.2 文件清单(摘录):URLToolBar.cpp
13.7.3 文件清单(摘录):URLEdit.cpp
13.8 View类和ClistCtrl类
13.9 SiteList(CListCtrl)类
13.9.l 文件清单(摘录):SiteList.h
13.9.2 文件清单(摘录):SiteList.cpp
13.10 FTPView类
13.10.1 文件清单(摘录):FTPView.h
13.10.2 文件清单(摘录):FTPView.cpp
13.11 改进浏览器
附录A 字体的基本术语
附录B Windows的新的堆内存函数
附录C 如何使用本书配套光盘
猜您喜欢