图书介绍
MFC开发 Windows 95/NT 4应用程序PDF|Epub|txt|kindle电子书版本网盘下载
![MFC开发 Windows 95/NT 4应用程序](https://www.shukui.net/cover/3/34855856.jpg)
- (美)Peter Norton,Rob McGregor 著
- 出版社: 北京:清华大学出版社
- ISBN:7302029342
- 出版时间:1998
- 标注页数:779页
- 文件大小:33MB
- 文件页数:799页
- 主题词:
PDF下载
下载说明
MFC开发 Windows 95/NT 4应用程序PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 Win32与面向对象编程1
第1章 面向对象编程与软件的可重用性1
1.1.1 从过程编程到面向对象编程1
1.1 面向对象编程综述1
1.1.2 继承(Inheritance)3
1.1.3 多态(Polymorphism)和虚拟方法(Virtual Methods)5
1.3 C++中的对象和类6
1.2 C++:对象连接(Object Connection)6
1.3.1 构造函数(Constructors)与析构函数(Destructors)8
1.4 代码重用(code Reuse)的优点8
1.6 模板9
1.5 类库9
1.4.1 停止重复开发9
1.7.1 动态链接库(DLLs)10
1.7 对象构件10
1.7.2 Visual Basic Extensions(VBXs)11
1.7.3 OLE Control Extensions(OCXs)11
1.8 小结11
2.2 剖析程序13
第2章 剖析Windows SDK程序13
2.1 面向对象Windows之前13
2.3 什么是Windows窗口14
2.4 Windows软件开发工具包(SDK)14
2.5 Windows应用程序设计接口(API)15
2.5.1 Win16和Win32API15
2.6 事件驱动程序设计和消息循环16
2.6.1 事件驱动模型16
2.7 WinMain( )函数19
2.8 窗口过程20
2.8.1 窗口类和窗口样式21
2.8.2 模块定义文件22
2.9 最小的SDK Windows程序23
2.9.1 剖析程序27
2.9.2 处理窗口过程中的消息28
2.10 修订的最小SDK Windows程序30
2.10.1 流线型的WinMain( )33
2.10.2 用Init Application( )初始化和注册窗口类33
2.11 小结34
2.10.3 用InitInstance( )创建应用程序窗口34
3.1 新的Windows Shell35
第3章 Windows编程问题35
3.1.1 Explorer35
3.2 Windows中的新概念37
3.2.1 进程与线程37
3.2.2 线程同步38
3.2.3 内存映像文件38
3.2.4 线程本地存储38
3.3 动态链接库39
3.2.5 信箱和管道39
3.4.5 进度栏控件40
3.4.4 列表视图控件40
3.4.3 图像列表控件40
3.4.2 热键控件40
3.4.1 动画控件40
3.4 Windows公用控件40
3.4.6 多功能编辑控件41
3.4.7 滑动控件42
3.4.8 旋转按钮控件42
3.4.9 状态栏控件42
3.4.10 标记控件43
3.4.11 工具栏控件43
3.5 Windows NT兼容性44
3.4.12 工具提示控件44
3.4.13 树型视图控件44
3.5.1 体面降级45
3.6 小结46
第4章 内存管理47
4.1.1 栈分配47
4.1 MFC内的内存管理47
4.1.2 堆分配48
4.2 32位内存页式管理48
4.2.1 32位地址空间和Windows 95内存范围(arenas)48
4.2.2 32位地址空间和Windows NT内存管理50
4.3 虚拟内存管理51
4.3.2 页映像51
4.3.1 分页文件51
4.3.3 空闲、保留和占用虚存52
4.3.4 页状态52
4.4 分配页53
4.4.1 Virtual Alloc( )函数53
4.5 内存一映像文件54
4.4.3 其他虚页函数54
4.4.2 保护页54
4.6.1 文件对象55
4.6 内存一映像文件的实现55
4.6.2 文件一映像对象55
4.6.3 文件视图映像56
4.7 小结57
第5章 Microsoft基本类库引论58
5.1 MFC前的AFX58
5.1.1 Application Framework(AFX)58
5.1.3 MFC的演变59
5.1.2 返回到绘图板59
5.3 在MFC内使用New Shell公用控件60
5.2 了解MFC设计要点60
5.4 硬件平台可移植性60
5.5 文档/视图结构61
5.6 MFC类层次61
5.7 CObject类:MFC的根62
5.7.1CObject服务62
5.7.2 CObject类方法63
5.8.1 数据、列表和映像类64
5.8 从CObject派生的MFC子系统64
5.8.6 控件支持65
5.8.5 Windows Sockets(插件)和Internet服务类65
5.8.4 文件和数据库类65
5.8.3 图形类65
5.8.2 调试和异常类65
5.8.7 菜单66
5.8.8 MFC应用程序结构类和同步类66
5.9 文档和视图68
5.9.1 文档模板68
5.9.2 窗口、对话框和控件类69
5.10 非CObject派生的MFC子系统71
5.10.1 OLE类72
5.10.3 支持类72
5.10.2 简单数据类型类72
5.10.4 同步类73
5.10.5 类型模板类73
5.11 两级对象构造73
5.12 最小MFC程序:MINMFC174
5.13 小结75
6.1 事件驱动程序设计77
第6章 消息与消息处理77
6.1.1 方法与消息77
6.2 了解消息77
6.2.1 MFC内的WinMain( )77
6.2.3 系统定义的消息80
6.2.2 消息结构80
6.2.4 用户定义的消息81
6.2.5 隐藏消息循环81
6.3 应用程序类简介:CWinApp84
6.4.1 窗口消息85
6.3.1 全局应用程序对象Helper函数85
6.4 消息处理程序85
6.4.2 控制通知消息86
6.4.3 命令消息86
6.5 消息映像86
6.5.1 透明地映像消息86
6.6 消息映像项与消息处理方法89
6.6.1 命令消息处理程序89
6.6.2 子窗口通知消息处理程序90
6.6.3 Windows消息处理程序92
6.6.4 用户定义的消息处理程序97
6.7 样本程序:最小消息映像App(MINMFC2)98
6.8 小结100
第7章 处理用户输入101
7.1 鼠标处理101
7.1.1 用户区鼠标消息101
7.1.2 鼠标捕捉102
7.1.3 非用户区鼠标消息105
7.2 键盘处理106
7.2.1 键盘消息107
7.2.2 虚键代码108
7.2.3 检测Shift状态和切换键109
7.2.4 Windows的字符键110
7.2.5 字符消息111
7.3 样本程序:鼠标和键盘键入(MOUSEKEY)112
7.3.1 检验应用程序头文件(MOUSEKEY.H)113
7.3.2 实现MOUSEKEY程序(MOUSEKDY.CPP)114
7.4 小结118
第8章 设备描述表和图形对象120
8.1 设备描述表120
8.1.1 图形设备接口120
8.2 MFC设备描述表类120
8.2.1 基类:CDC121
8.2.2 用类CPaintDC绘画124
8.2.3 用类CClientDC管理用户区125
8.2.4 用类CWindowDC管理框架窗口126
8.2.5 具有类CMetaFileDC的Windows元文件127
8.3 图形对象128
8.3.1 笔:类CPen129
8.3.2 刷子:类CPrush131
8.3.3 字体:类CFont132
8.3.5 调色板:类CPalette133
8.3.4 位图:类CBitmap133
8.3.6 区域:类CRgn134
8.4 小结135
9.1 GDI坐标系统136
第9章 矢量图形和正文136
9.1.1 逻辑映像方式137
9.1.2 建立映像方式137
9.1.3 CDC矢量图形方法139
9.1.4 绘图方式139
9.1.5 点140
9.1.6 绘制点141
9.1.7 线和多边形142
9.1.8 矩形145
9.1.9 区域149
9.1.10 多边形151
9.1.11 Bezier曲线151
9.1.12 元文件153
9.2 字体和正文157
9.2.2 TEXTMETRIC结构157
9.2.1 字体特征157
9.2.3 LOGFONT结构160
9.2.4 字体创建161
9.2.5 绘制正文162
9.3 样本程序:矢量图形和正文方法(VECTEXT1.EXE)164
9.4 小结165
10.1 光栅图形166
第10章 光栅图形和调色板166
10.1.1 位图166
10.1.2 设备相关位图(DDBs)167
10.1.3 设备无关位图(DIBs)168
10.1.4 CBitmap类168
10.1.6 传送和扭曲位图169
10.1.5 已命名的光栅操作(Named Raster Operations-ROPs)169
10.1.7 样本应用程序:RASTER1.EXE171
10.2 调色板和调色板管理172
10.2.1 颤动173
10.2.2 硬件调色板173
10.2.3 系统调色板173
10.2.4 逻辑调色板174
10.2.5 类CPalette175
10.2.7 样本程序:PALETTE1.EXE179
10.2.6 调色板消息179
10.3 小结183
第11章 有用的通用类184
11.1 字符串:使用类CString184
11.1.1 与C风格字符串兼容184
11.1.2 字符串赋值、连接、比较和析取185
11.1.3 字符串的序列化和缓冲区187
11.1.4 Unicode支持187
11.2 集合类188
11.2.1 集合形188
11.2.2 非样板为基集合类188
11.2.3 样板为基的集合类189
11.3 诊断服务190
11.3.1 通用诊断宏190
11.3.2 MFC通用诊断变量和函数191
11.4 日期和时间类192
11.3.3 MFC对象诊断函数192
11.5 小结193
12.1扩展MFC功能性195
12.2.1 CMainFrame类界面:MAINFRAM.H195
12.2 自定义框架窗口基类:CMainFrame195
第12章 定义你自己的类195
12.2.2初始化子窗口CreateChiled-Controls( )198
12.2.3 确定框架窗口的中心:Center-Window( )198
12.2.4 封装Win32API函数:GetWindows VerInfo( )199
12.2.5 显示Windows 版本信息:Show Windows VerInfo( )200
12.2.7 取用户区高宽:GetHeight( )202
12.2.8 将整数转换为字符串:IntTo-String( )202
12.2.9 将字符串转换为整数:StringTo-Int( )202
12.2.6 取用户区宽度:Get Width( )202
12.2.10 设置默认窗口颜色:SetClient-Backcolor( )203
12.2.11 用RGB颜色绘制用户区:Set-ClientColorRGB( )203
12.2.12 调整窗口背景涂色:OnErase-Bkgnd( )204
12.2.13 改变窗口的字体:SetWndFont( )204
12.2.14 改变子控件字体:SetChildFonts( )205
12.3 小结205
13.1 应用程序对象的作用207
第13章 框架窗口、文档及视图207
13.2 框架窗口对象208
13.2.1 框架窗口基类:CFrame Wnd209
13.2.2 窗口构造210
13.3 文档211
13.3.1 文档基类CDocument211
13.4 视图212
13.4.1 增强的CView派生类213
13.5.1 把类组合在一起214
13.5 文档模板214
13.5.2 文档模板基类:CDoc Template215
13.5.3 创建文档模板216
13.5.4 文档模板字符串216
13.6 文档/视图消息传递217
13.6.1 命令发送217
13.6.2 默认命令标识符及处理程序219
13.7 样本程序:最小的文档/视图应用程序(DOCVIEW1.EXE)220
13.7.1 应用程序类221
13.7.2 文档类224
13.7.3 框架窗口类225
13.7.4 视图类226
13.8 小结228
14.1 打印230
14.1.2 打印循环:CView::OnFilePrint( )230
14.1.1 设备无关性230
第14章 打印和打印预览230
14.1.3 准备打印231
14.1.4 CPrintInfo类结构232
14.1.5 Print对话框233
14.1.6 开始打印作业234
14.1.7 准备打印设备描述表234
14.1.8 打印作业234
14.1.9 清除235
14.2 打印预览235
14.2.1 CView::OnFilePrintPreview( )内部结构235
14.3 样本程序236
14.3.1 增加打印及打印预览236
14.3.2 调用打印预览239
14.4 小结239
第15章 按钮和滚动控件241
15.1 按钮控件:CButton类和CBitMapButton类242
15.1.1 按钮样式243
15.1.2 CButton和CBitmapButton类结构245
15.1.3 CButton和CBitmapButton消息245
15.1.5 创建和初始化按钮247
15.1.6 样本程序:使用每一种按钮样式248
18.2 动画控件:类CAnimateCtrl249
15.2 微调(spin)控件:CSpinButtonCtrl类254
15.2.1 微调控件样式255
15.2.2 CSpinButtonCtrl类结构256
15.2.3 CSpinButtonCtrl消息256
15.2.5 创建及初始化微调控件257
15.2.4 CSpinButtonCtrl类方法257
15.3 滚动条:CScrollBar类260
15.3.1 滚动条样式262
15.3.2 CScrollBar类结构262
15.3.3 CScrollBar消息263
15.3.4 CScrollBar类方法264
15.3.5 创建和初始化滚动条265
15.3.6 样本程序:滚动条266
15.4 滑动控件:CSliderCtrl类272
15.4.2 CSliderCtrl类结构273
15.4.1 滑动控件样式273
15.4.3 CSliderCtrl消息274
15.4.4 CSliderCtrl类方法275
15.4.5 创建和初始化滑动控件276
15.4.6 样本程序:滑动控件(SLIDERI)277
15.5 小结278
16.1 列表框控件:CListBox类280
第16章 列表框、编辑和组合框控件280
16.1.1 列表框样式281
16.1.2 CListBox类结构282
16.1.4 CListBox类方法284
16.1.3 CListBox消息284
16.1.5 创建和初始化CListBox对象287
16.1.6 样本程序:单选项和多选项文件列表框287
16.1.7 自绘列表框292
16.2 编辑控件:CEdit类293
16.2.1 编辑控件样式294
16.2.2 CEdit类结构296
16.2.3 CEdit消息297
16.2.4 CEdit类方法297
16.2.5创建和初始化编辑控件299
16.3 组合框控件:CComboBox类303
16.3.1 组合框样式304
16.3.2 CComboBox类结构305
16.3.4 CComboBox类方法308
16.3.6 样本程序:一个具有自绘颜色项的组合框310
16.3.5 创建和初始化组合框310
16.4 小结317
17.1.1 CImageList类结构318
17.1 图像列表控件:类 CImageList318
第17章 图像列表、列表视图、树视图、进度栏和热键控件318
17.1.2 CImageList类方法320
17.1.3 CImageList控件的创建及初始化320
17.2 列表视图控件:类CListCtrl321
17.2.1 列表视图控件样式323
17.2.3 CListCtrl类结构324
17.2.2 图像列表与列表视图控件324
17.3 列表视图项及其子项326
17.3.1 列表视图的通知(Notification)消息327
17.3.2 CListCtrl类方法328
17.3.3 创建及初始化CListCtrl对象329
17.3.4 使用列表视图控件329
17.4 树视图控件:类CTreeCtrl331
17.4.1 树视图控件样式332
17.4.2 CTreeCtrl类结构332
17.4.3 树视图通知消息334
17.4.4 CTreeCtrl类方法334
17.5 进度栏控件:类CProgressCtrl336
17.4.7 样本程序:TREELIST.EXE336
17.4.6 使用CTreeCtrl对象336
17.4.5 创建并初始化树视图控件336
17.5.1 CProgressCtrl类结构338
17.5.2 CProgressCtrl类方法338
17.5.3 创建并初始化CProgressCtrl对象339
17.5.4 使用进度控件339
17.6 热键控件:类CHotKeyCtrl339
17.6.1 CHotKeyCtrl类结构340
17.6.2 CHotKeyCtrl类方法341
17.6.3 创建并初始化CHotKeyCtrl对象341
17.6.4 使用热键控件341
17.7 小结342
18.1 制表控件:类CTabCtrl343
第18章 制表、动画和多功能编辑控件343
18.1.1 制表控件样式344
18.1.2 CTabCtrl类结构345
18.1.4 CTabCtrl类方法346
18.1.3 制表控件通知消息346
18.1.6 创建初始化一个制表控件347
18.1.5 制表项结构(TC-ITEM)347
18.1.7 使用制表控件348
18.2.1 动画控件样式351
18.2.2 CAnimateCtrl类结构351
18.2.3 动画控件通知消息352
18.2.4 CAnimateCtrl类方法352
18.2.5 创建和初始化一个动画控件352
18.2.6 使用动画控件352
18.4多功能编辑控件:CRichEditCtrl类353
18.3.1 多功能编辑控件窗口样式354
18.3.2 CRichEdit类结构354
18.5字符格式结构(CHARFORMAT)356
18.6段落格式结构(PARAFORMAT)357
18.5.1 CRichEditCtrl类方法359
18.5.2 CRichEditCtrl行相关方法359
18.5.3 CRichEditCtrl文本选择方法359
18.5.5 CRichEditCtrl编辑方法360
18.5.4 CRichEditCtrl格式化方法360
18.5.6 CRichEditCtrl剪贴板方法360
18.5.7 CRichEditCtrl通用方法360
18.5.8 创建并初始化一个多功能编辑控件361
18.5.9 使用多功能编辑控件361
18.7样本程序:TAB1.EXE362
18.6.1 决定显示对象363
18.6.2 按样式填充多功能编辑控件364
18.8小结365
第19章 工具栏、状态栏和工具提示366
19.1 控件栏366
19.2.1 CToolBar类367
19.2 工具栏控件367
19.2.2 CToolBarCtrl类369
19.2.3 TBBUTTON结构370
19.2.5 工具栏按钮样式371
19.2.4 工具栏按钮状态371
19.2.6 CToolBarCtrl类结构372
19.2.7 工具栏通知消息373
19.2.8 CToolBarCtrl类方法374
19.2.9 创建和初始化工具栏控件375
19.2.10 使用CToolBarCtrl对象375
19.3.1 CStatusBar类376
19.3 状态栏(Status Bars)376
19.3.2 CStatusBarCtrl类378
19.3.3 CStatusBarCtrl类结构378
19.3.4 状态栏样式379
19.4 工具提示控件:类CToolTipCtrl380
19.3.5 创建并初始化状态栏控件380
19.4.1 TOOLTIPTEXT(工具提示文本)结构381
19.4.2 CToolTipCtrl类结构382
19.4.3 处理ToolTip的TTN NEEDTEXT通知383
19.4.4 CToolTipCtrl类方法383
19.4.5 创建并初始化ToolTip(工具提示)控件384
19.5 样本程序:CTRLBARI384
19.5.1 应用程序类(CMyApp)385
19.5.2 主框架窗口类(CMain Wnd)386
19.5.3 创建控件388
19.5.4 激活父窗口的工具提示390
19.5.5 ToolTip通知处理器390
19.5.6 更新状态栏并显示ToolTip391
19.5.7 改变工具栏和状态栏的大小392
19.6 小结392
20.2 派生新的控件类394
第20章 派生自定义控件394
20.1 新控件的设计考虑394
20.2.1 源文件395
20.2.2 增加新的数据成员395
20.2.3 定义新的控件类396
20.2.4 覆盖继承DrawItem( )类的方法398
20.2.5 绘制控件399
20.3 PANEL1程序:测试派生CPanel3dCtrl类405
20.4 小结408
第4部分 资 源409
第21章 图标、光标和位图409
21.1 将资源附加于可执行文件上410
21.2 从一个可执行文件中得到图像资源410
21.3 图标411
21.3.1 创建图标412
21.3.2 使用256色图标412
21.3.3 样本程序:用户区的图标(ICON1)413
21.4.2 使用256色光标418
21.4.3 使用动画光标418
21.4 光标418
21.4.4 样本程序:有方向的光标(CURSORI)418
21.4.1创建光标418
21.5 位图423
21.5.1 创建位图423
21.5.2 使用256色位图423
21.5.3 利用光线跟踪位图以获取超现实主义效果423
21.5.4 样本程序:开发位图资源(BITMAP1)424
21.6 小结428
第22章 菜单、加速器和字符串表430
22.1 菜单430
22.1.1 菜单消息431
22.1.2 菜单结构432
22.1.3 动态菜单434
22.1.4 CMenu类的结构434
22.1.5 CMenu类方法435
22.2.1 创建加速器437
22.2 加速器437
22.2.2 装入并使用加速器438
22.3 字符串表438
22.3.1 裁掉多余的439
22.3.2 自动装入资源440
22.4.2 应用程序头文件(MAST.H)441
22.4 样本程序:菜单、加速器和字符串表(MAST.EXE)441
22.4.1 公用资源标识符441
22.4.5 程序入口点:InitInstance( )443
22.4.3 实现MAST应用程序(MAST.CPP)443
22.4.4 CMain Wnd消息映像443
22.4.6 上下文菜单444
22.4.7 响应菜单命令445
22.5 小结446
23.1 查看版本信息448
第23章 版本信息和用户定义的资源448
23.1.1 版本信息资源449
23.1.2 版本资源结构449
23.1.3 在应用程序中使用版本信息453
23.2 用户自定义资源455
23.2.1 访问你的自定义数据456
23.2.2 一个用户定义资源样本:声波数据457
23.3 小结463
第24章 公用对话框464
24.1 MFC中的标准公用对话框465
24.1.1 公用对话框的错误检测465
24.1.2 基公用对话框:类CCornmDialog466
24.1.3 彩色对话框:类CColorDialog466
24.1.4 文件对话框:类CFileDialog468
24.1.5 Find和Replace对话框:类CFindReplaceDialog471
24.1.6 字体对话框:类CFontDialog474
24.1.7 打印对话框:类CPrintDialog475
24.1.8 页设置对话框:类CPageSetup-Dialog477
24.2 样本程序:使用公用对话框(DIALOG1.EXE)480
24.2.1 使用彩色公用对话框481
24.2.2 使用查寻、替换公用对话框481
24.2.3 使用打开公用对话框483
24.2. 5 使用打印公用对话框484
24.2.4 使用另存为作为公用对话框484
24.2.6 使用打印设置公用对话框485
24.2.7 使用页面设置公用对话框485
24.3 小结487
25.1 对话框基本概念488
25.1.1 对话框就是一个窗口488
第25章 自定义对话框和对话栏488
25.1.2 MFC对话框封套:类CDialog489
25.1.3创建对象CDialog489
25.1.4 对话控件490
25.1.5 模态对话框490
25.1.6 非模态式对话框490
25.1.7 对话框模板490
25.2 交换和验证对话框数据491
25.1.8 映像消息到对话类491
25.2.1更新数据492
25.2.2 对话数据交换:DDX492
25.2.4 类CDateExchange493
25.2.3 对话数据验证:DDV493
25.2.5 基于对话的应用程序494
25.3 对话栏:类CDialogBar494
25.3.1 对话栏控件样式495
25.4 样本程序:DLALOG2495
25.3.2 从对话栏得到消息495
25.3.3 创建和使用对话栏495
25.4.1 一个简单的About对话框类496
25.4.2 一个更有趣的对话类496
25.4.3 主框架窗口类503
25.5 小结505
26.1 属性工作表和属性页506
第26章 Windows向导506
26.1.1 类CPropertySheet和CPropertyPage506
26.1.2 向导引路和属性工作表的连接507
26.2 创建向导508
26.2.1 设置向导模式508
26.2.2 选择向导按钮508
26.2.5 单击Back按钮509
26.2.3 显示向导509
26.2.4 向导通知消息509
26.2.6 单击Next按钮509
26.3.1 创建向导属性页的对话模板资源510
26.3 样本程序:来看一下向导(Wizard1.exe)510
26.3.2 为每一个对话资源建立对话类510
26.3.3 开发“Welcome”页:类CIntroPage512
26.3.4 开发“About you”页:类CPagel515
26.3.5 更新CPage2和CPage3的向导信息519
26.3.6 创建和显示向导520
26.4 小结521
27.1 类CFile523
第27章 文件输入/输出和注册表523
27.1.1 CFile类结构523
27.1.2 CFile类方法525
27.3 CMemFile类528
27.3.1 CMemFile类方法528
27.2 类CStdioFile528
27.2.1 CStdilFile类方法528
27.4.1 CSharedFile类方法529
27.5 基本文件操作529
27.5.1 创建、打开、读和写文件529
27.4 类CSharedFile529
27.5.2 复制、移动、换名和删除文件530
27.5.3 样本程序:FILE1.EXE532
27.5.4 样本程序:KILLHR.EXE533
27.5.6 检查一个已存在的文件534
27.5.5 接受从Explorer或File Manager拖来的文件534
27.5.7 舍去硬返回535
27.6 Windows注册表537
27.7 初始化文件538
27.7.1 预定义注册表关键字538
27.7.2 注册表关键字和值539
27.7.3 应用程序状态信息539
27.7.4 注册表函数540
27.8 样本程序(WALLFLIP.EXE)541
27.8.1 应用程序头文件(WALLFLIP.H)541
27.8.2 类CWallFlipApp542
27.8.3 类CWallFlipDlg( )546
27.9 小结549
第6部分 高级Windows编程552
28.1.1 创建一个进程552
第28章 进程与线程552
28.1 进程552
28.1.2 关闭进程553
28.2 线程554
28.2.1 线程类型554
28.3 Win32中的多任务554
28.5 CWinThread类555
28.5.1 CWin Tbread类结构555
28.4 MFC下的多线程555
28.5.2 CWin Thread数据成员557
28.5.3 CWin Thread类方法557
28.5.4 全局线程帮助程序函数558
28.5.5 线程调度559
28.6 同步对象560
28.6.1 CSingleLock类560
28.6.2 CMultiLock类561
28.6.3 CSyncObject类561
28.6.5 CEvent类562
28.6.4 CCriticalSection类562
28.6.6 CMutex类563
28.7 使用CMutex对象563
28.8 样本程序(CURVES.EXE)564
28.7.1 CSetnaphore类564
28.8.1 CCurveThread类565
28.8.2 创建曲线线程570
28.9 小结570
29.2 基本异常语法572
29.1.1 关键字try,throw,catch572
29.1 处理异常572
第29章 异常和异常处理572
29.2.1 异常保护你的代码573
29.3 未处理的异常574
29.3.1 异常中的清除574
29.4 MFC异常575
29.4.1 CException类576
29.4.2 CArchiveException类576
29.4.3 CDaoException类577
29.4.4 CDBException类577
29.4.5 CFileException类578
29.4.6 CMemoryException类579
29.4.7 CNotSupportedException类579
29.4.8 COleDispatchException类579
29.4.11 CUserException类580
29.4.9 COleException类580
29.4.10 CResourceException类580
29.4.12 转换MFC异常到C++异常581
29.5 小结582
第30章 动态链接库设计与实现583
30.1 16位DLL583
30.2 32位DLL583
30.2.1 DLL的入口点:DLLMain( )函数584
30.2.2 使用C语言编写的DLL585
30.2.3 匹配引入和引出585
30.2.4 为DLL创建一个应用程序接口586
30.3 用MFC编写DLL586
30.3.1 常规型DLL587
30.3.2 扩展DLLs587
30.4.1 用C语言创建DSK DLL:DYNLINK1.DLL588
30.4 样本程序:DLLTESTI.EXE588
30.4.2 用MFC创建常规DLL:DYNLINK2.DLL590
30.4.3 用MFC创建扩展DLL:DYNLINK3.DLL592
30.5 小结595
第31章 组件对象模型(COM)、OLE和ActiveX596
31.1 OLE历史的简要回顾596
31.1.1 OLE1.0版596
31.1.2 OLE2.0版596
31.2.1 ActiveX SDK597
31.2 OLE的特性597
31.3 组件对象模型(COM)598
31.3.1 COM接口598
31.3.2 COM标识符598
31.4 IUnKnown接口599
31.4.1 查询接口600
31.5 IClassFactory接口601
31.5.1 注册表的作用601
32.4.2 引用计数601
31.5.2 分布式组件对象模型(DCOM)602
31.6 OLE602
31.6.1 OLE客户机和服务器603
31.7 MFC和OLE603
31.7.2 使用接口映像604
31.8 小结604
31.7.1 接口映像(Interface Map)604
第32章 OLE自动化606
32.1 IDispatch接口606
32.1.1 VARIANT数据类型607
32.1.2 IDispatch::Invoke( )方法608
32.1.4 OLE自动化服务器609
32.1.3 类型库609
32.2.2 调度映像(Dispatch Maps)610
32.2 MFC和OLE自动化610
32.2.1 MFC调度(Dispatch)标识符的分配610
32.3 OLE自动化服务器和控制器应用程序实例614
32.3.1 OLE自动化服务器的实现614
32.3.2 OLE自动化控制器的实现618
32.4 小结620
第33章 OLE控件622
33.1.2 MFC的OLE控件类622
33.1 OLE控件概述622
33.1.1 标准OLE控件特征622
33.1.3 COleControlModule类623
33.1.4 COleControl类624
33.1.5 COleControl类结构624
33.1.6 CPropertyPage类用于自包含的控件625
33.1.8 事件映像和库存事件626
33.1.7 属性页数据交换626
33.2.1 创建一个OLE控件框架627
33.2 一个OLE控件示例(PANEL3D.OCX)627
33.2.2 测试框架控件629
33.3 向框架中增加功能630
33.3.1 自定义项目资源631
33.3.2 属性页对话资源631
33.3.4 CPanel3dCtrl类接口634
33.3.3 CPanel3dCtrl类634
33.3.5 实现CPanel3dCtrl类636
33.3.6 CPanel3dPropPage类641
33.3.7 测试控件641
33.4 在一个样本程序中使用新控件641
33.4.1 把Panel3d控件添加到VB项目中642
34.1.1 超文档概念649
649
34.1.2 Windows帮助超文档650
34.2 帮助项目文件(.HPJ)651
34.2.1 定义Help项目文件段651
34.3 多格式文本文件(.RTF)657
34.3.1 使用Windows下的Word657
34.3.2 专用脚注符号657
34.4 交互式位图:分段超图形(.SHG)658
34.4.1 使用热点编辑器(SHED)659
34.4.2 通过引用来包含位图662
34.5 目录(Content)文件(.CNT)662
34.6 使用WinHelp宏和Windows动态链接库DLL663
34.8.1 HELPINFO结构664
34.8 上下文相关的Help664
34.7 在MFC中设置Help文件名664
34.9 直接调用WinHelp665
34.10 样本程序:一个联机Help样本程序(HELP1.EXE)666
34.10.1 映像Help主题到MFC应用程序构件667
34.10.2 一个示例Help项目文件(HELP1.HPJ)668
34.10.3 样本应用程序HELP1的结构和实现670
34.11 小结673
第7部分 Windows通信程序设计675
第35章 通信概念及实现途径675
35.1 通信技术背景675
35.1.1 网络675
35.1.2 客户机/服务器系统676
35.1.3 调制解调器676
35.2.2 Windows Sockets(WinSock)677
35.2 Windows通信概述677
35.2.1 商业工具677
35.2.3 Win32 Internet(WinInet)API678
35.2.4 微软的因特网客户机/服务器的结构678
35.2.5 因特网服务器API(ISAPI)679
35.2.6 ActiveX控件679
35.2.7 Messaging API(MAPI)679
35.3 通过代码签名的因特网的安全性680
35.3.1 涉及的安全性问题680
35.3.2 签暑你的代码681
35.3.3 考虑价格因素681
35.4 小结682
36.1.1 IP协议683
36.1.2 IP地址683
36.1 因特网协议集683
第36章 用WinSock通683
36.1.3 主机名685
36.1.4 数据报,端口和套接字685
36.2 Windows套接字概述686
36.2.1 建立套接字686
36.2.2 套接字结构686
36.2.3 伯克利套接字规范的Windows扩展687
36.3 MFC中的Windows Sockets689
36.3.1 CAsyncSocket类689
36.3.2 CAsyneSocket类方法689
36.3.3 创建和使用CAsyncSocket对象690
36.3.5 CSocket类方法691
36.3.4 CSocket类691
36.3.6 创建CSocket对象692
36.3.7 使用CSocket对象692
36.4 小结692
第37章 WinInet API和MFC WinInet类的使用693
37.1 WinInet API介绍693
37.1.1 使用 WinInet API的好处693
37.1.2 TCP/IP和Windows Sockets693
37.1.3 接口友好694
37.1.4 最新的API和安全保证(Safe Bet)694
37.1.5 熟悉的编程接口694
37.1.6 支持多线程694
37.1.7 数据缓存的支持694
37.2 句柄和函数694
37.3 通用WinInet函数695
37.4 WinInet FTP函数696
37.5 WinInet Gopher函数697
37.6 WinInet HTTP函数697
37.7 样本程序:RAWHTML.EXE698
37.7.1 CRawHtmlApp类698
37.7.2 CRawHtmlDlg对话框类和头文件HTMLDLG.H699
37.7.3 CRawHtmlDlg类的具体实现(HTMLDLG.CPP)700
37.7.4 初始化WinInet会话705
37.7.5 获取协议句柄706
37.7.6 打开文件707
37.7.7 查询信息709
37.7.8 读文件数据710
37.8.2 连接类711
37.8 MFC因特网扩展类711
37.8.1 CInternetSession类711
37.8.3 因特网文件类712
37.8.4 全局MFC因特网函数713
37.9 RAWHTML的修正样本程序:RAWHTM2.EXE713
37.10 小结716
第38章 创建ActiveX控件以激活Web页718
38.1 ActiveX控件概述718
38.1.1 OLE控件96规范718
38.2 ActiveX控件样本程序:JIGGLER.OCX719
38.2.1 创建一个OLE控件框架719
38.2.2 测试框架控件720
38.3 给框架添加功能720
38.3.2 属性页对话框资源721
38.3.1 自定义项目资源721
38.3.3 CJigglerCtrl类722
38.3.4 CJigglerCtrl类界面(JIGGLERC.H)722
38.3.5 实现CJigglerCtrl类723
38.3.6 CJigglerPropPage类730
38.4 在OLE Control Test Container中测试控件732
38.5 在一个简单网页上使用新控制732
38.5.1 创建一个简单的HTML网页733
38.5.2 将Jiggler控件加入网页734
38.5.3 用VBScript对Jiggler控件进行编程738
38.6 小结741
39.1.1 客户机应用程序742
第39章 用MAPI创建通邮的应用程序742
39.1 消息应用程序编程接口(MAPI)742
39.2 两种较高级的选择:简单的MAPI和CMC743
39.2.1 简单的MAPI743
39.2.2 公共消息调用(CMC)743
39.2.3 MapiMessage结构744
39.2.4 MapFileDesc结构745
39.3 MFC中有限的MAPI功能745
39.4 CDocument连接746
39.4.1 做MAPI的MFC方法746
39.4.2 CDocument::OnFileSendMail( )方法746
39.5 样本程序:MAPII.EXE750
39.6 小结753
附录A数据类型与Windows句柄754
A.1 简单数据类型(Simple Data Types)754
A.2 结构化的数据类型(Structured Data Types)755
A.3 句柄(Handles)755
附录B 窗口类与窗口样式757
B.1 窗口类结构757
B.2 窗口类样式759
B.3 窗口样式760
B.3.1 重叠式窗口761
B.3.2 弹出式窗口761
B.3.3 子窗口762
B.4窗口样式分组762
B.4.2 非客户域组件样式764
B.4.1 窗口边界样式764
B.4.3 初始窗口状态样式765
B.4.4 父与子窗口样式765
B.4.5 对话框样式765
B.4.6 扩展的窗口样式766
附录C Windows 95微标要求767
C.1 概述(Overview)767
C.2 对所有应用程序类型的要求767
C.3 基于文件应用程序的要求768
C.4 实用应用程序的要求769
C.4.1 实用应用程序的建议769
C.5 编译器与其他开发工具的要求770
D.2 迁移阶段771
D.1 MFC迁移包771
附录D 从C到MFC的迁移771
D.2.1 准备772
D.2.2 阶段1:迁移WinMain( )和WndProc( )代码772
D.2.3 阶段2:删除处理消息的开关语句773
D.2.4 阶段3:用MFC更进一步集成773
附录E 匈牙利记法775
E.1 匈牙利基类型和前缀(Hungarian Base Types and Prefixes)775
附录F MFC中Windows公共控件的通知消息777
F.1 Windows公共控件的通知777
F.2 通知消息结构777
F.3 通知过程的概述777
F.3.1 更好地处理通知的方案778
F.4 用ON_NOTIFY_RANGE指定通知域779