MFC应用开发教程

MFC应用开发教程
作 者: Vic Broquard 汪泳 汪泳
出版社: 清华大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: Palm
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《MFC应用开发教程》作者简介

内容简介

简介本书适用于已经具备了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),代替原来的位于Windo...

图书目录

目录

简介

软件要求

在发行版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 如何使用本书配套光盘