前言页 1
第一章 Microsoft Windows和Visual C++ 3
第一部分 WINDOWS、VISUAL C++和应用框架基础 3
1.1 Windows的编程模式 3
1.1.1 消息处理 3
1.1.2 Windows的图形设备接口(GDI) 4
1.1.3 基于资源的程序设计 4
1.1.4 内存管理 4
1.1.5 动态连接库(DLLs) 5
1.1.6 新的Windows特性--OLE和TrueType 5
1.1.7 Windows NT 5
1.2 Visual C++的组成 6
1.2.1 Visual工作平台和创建过程 6
1.2.2 App Studio资源编辑器 8
1.2.5 资源编译器 9
1.2.7 AppWizard 9
1.2.6 调试器 9
1.2.4 连接器 9
1.2.3 C/C++编译器 9
1.2.9 源程序浏览器 10
1.2.8 ClassWizard 10
1.2.10 联机帮助 11
1.2.11 Windows诊断工具 11
1.2.12 Microsoft基本类库2.0版 12
第二章 Microsoft基本类库应用框架 13
2.1 为什么要使用应用框架 13
2.2.1 应用框架和类库 15
2.1.1 学习曲线 15
2.2 什么是应用框架? 15
2.2.2 应用框架例子 16
2.3 类库消息映射 18
2.3.1 文档(document)和视(view) 19
致谢 20
前言 21
3.1 什么是视? 23
第三章 从“Hello,world!”入手来学习AppWizard 23
第二部分 类库的视类 23
3.3 “不做任何事情”的应用 24
3.2 单文档接口(SD?)和多文档接口(MDI) 24
3.5.3 往EX03A程序中加入绘制代码 27
3.5.2 Windows设备环境 27
3.4 CEx03aView视类 27
3.5 在视窗内绘图--Windows的图形设备接口 27
3.5.1 OnDraw成员函数 27
3.6.1 EX03A.RC的内容 29
3.6 提前了解一下App Studio,同时介绍一下资源 29
3.6.2 运行App Studio 30
3.7 Windows的Debug内核和DBWIN 31
3.9 加速创建过程 33
3.8.1 允许诊断宏 33
3.8 需要使用调试器吗? 33
3.10 创建新的MAK文件 38
4.1.1 消息映射 40
4.1 获取用户输入--消息映射函数 40
第四章 基本事件控制--全盘 ClassWizard 40
4.1.3 初始化视类数据成员 41
4.1.2 保存视的状态--类数据成员 41
4.2 EX04A例程序 42
4.1.5 Windows的用户区域 42
4.1.4 使矩形区域无效 42
4.3.1 同时使用AppWizard和ClassWizard 45
4.3 对EX04A使用ClassWizard 45
4.4 EX04B--通过鼠标来拖动圆 47
4.4.1 EX04B程序的构成元素 49
4.5.4 EX04C滚动例程序 52
4.5.3 滚动方式的选择 52
4.5 滚动视窗 52
4.5.1 窗口比人们所见到的要大 52
4.5.2 滚动条 52
4.5.5 EX04C程序中的元素 55
4.6.2 WM_QUERYENDSESSION消息 56
4.6.1 WM_CLOSE消息 56
4.6 其它Windows消息 56
4.6.4 WM_NCDESTROY消息 57
4.6.3 WM_DESTROY消息 57
5.1.1 显示设备环境类CClientDC和CWindowDC 58
5.1 设备环境类 58
第五章 图形设备接口(GDI) 58
5.1.3 设备环境的状态 59
5.1.2 构造和析构CDC对象 59
5.2 GDI对象 60
5.1.4 CPaintDC类 60
5.2.2 跟踪GDI对象 61
5.2.1 GDI对象的构造与析构 61
5.2.4 GDI选择的有效期 62
5.2.3 库存的GDI对象 62
5.2.5 持久的用于显示的设备环境--登记窗口类 63
5.3.1 标准视频图形矩阵(VGA)显示卡 64
5.3 Windows的颜色映射 64
5.4 映射方式 65
5.3.3 24位颜色显示卡 65
5.3.2 256色显示卡 65
5.4.1 MM_TEXT映射方式 66
5.4.3 “比例可变”的映射方式 67
5.4.2 “固定比例”的映射方式 67
5.4.4 坐标变换 69
5.5.2 选择字体 70
5.5.1 字体是GDI对象 70
5.5 字体 70
5.5.5 窗口中的点--逻辑Twips 71
5.5.4 显示字体 71
5.5.3 打印字体 71
5.5.6 计算字符高度 72
5.6 EX05A例程序 73
5.6.1 EX05A程序的组成元素 75
5.7 EX05B程序 76
5.8 EX05C例程序--再次使用CScroLLView 79
5.8.2 CScroLLView的SetScaleToFitSize状态 82
5.8.1 EX05C程序的一些元素 82
6.2 系统模式对话框 83
6.1 有模式和无模式对话框 83
第六章 有模式对话框 83
6.4 有模式对话框的程序设计 84
6.3 资源和控制 84
6.5 包罗万象的对话框--EX06A例程序 85
6.5.1 ClassWizard和对话框类 91
6.5.2 将对话框与视相连接 93
6.5.3 深入理解EX06A应用 95
6.6.1 获得OnOK退出控制 96
6.6 增强对话框函数 96
6.6.3 和滚动条控制挂上钩 98
6.6.2 OnCancel处理 98
6.7 确认控制:CWnd指针和控制ID 100
6.9 利用其它的控制特性 101
6.8 在对话框窗口内绘图 101
7.1.2 用户定义的消息 102
7.1.1 创建无模式对话框 102
第七章 无模式对话框和COMMDLG对话框类 102
7.1 无模式对话框 102
7.1.4 无模式对话框的例子--EX07A 103
7.1.3 对话框的归属 103
7.3 COMMDLG对话框 108
7.2 CFormView类--另外一个可供选择的无模式对话框 108
7.3.4 使用CFileDialog的一个例子--EX07B 109
7.3.3 从COMMDLG类进行派生 109
7.3.1 直接使用CFileDialog类 109
7.3.2 在程序运行的过程中加进对话框控制 109
8.2 C++的类和Visual Basic控制 114
8.1 Windows的标准控制和普通常规控制 114
第八章 Visual Basic控制 114
8.2.3 Visual Basic控制事件和Windows控制通知 115
8.2.2 属性(property)和数据成员 115
8.2.1 方法(method)和成员函数 115
8.4 CVBControl类 116
8.3 Visual Basic事件登记 116
8.5.1 Visual Basic GRID控制 117
8.5 EX08A例程序 117
8.5.2 创建EX08A例程序 118
8.6 利用其它的Visual Basic控制 125
8.8 编写和利用Visual Basic控制的有利和不利因素 126
8.7 Visual Basic的图象属性(picture property) 126
9.1 内存模式综述 127
第九章 全新的Windows内存管理 127
9.2.1 Intel段结构 128
9.2 16位Windows 128
9.2.3 内存模式--一个代码段还是多个代码段? 129
9.2.2 DGROUP段和多事件程序 129
9.2.4 近程函数调用 130
9.2.5 内存模式--一个数据段还是多个? 131
9.2.6 局部堆 132
9.2.7 全局堆 133
9.2.10 80386/80486的虚内存管理器 134
9.2.9 直接使用Windows的内存申请函数 134
9.2.8 程序的vtable在内存中的位置 134
9.3 检测内存疏漏(Leak) 135
10.2 使用GDI位图 136
10.1 GDI位图和与设备无关的位图(DIB) 136
第十章 位图 136
10.4 从资源中装入GDI位图 137
10.3 彩色位图和单色位图 137
10.6.1 EX10A例程序 138
10.6 对位进行伸缩处理 138
10.5 显示映射方式的作用 138
10.7.1 EX10B例程序 141
10.8 GDI位图的其它应用 145
11.1 位图按钮 147
11.1.1 EX11A例程序 147
第十一章 位图按钮、计时器和空状态处理 147
11.2 计时器的使用及控制的产生 151
11.2.1 计时器 151
11.1.2 对位图按钮的进一步讨论 151
11.2.2 产生控制 152
11.2.3 EX11B例程序 153
11.3 空状态处理 156
11.3.1 EX11C程序 156
12.1 主框架窗口和文档类 163
第十二章 菜单和键盘加速键 163
第三部分 文档--视结构 163
12.2 Windows的菜单 164
12.3 键盘加速键 165
12.4 命令处理 165
12.4.1 派生类中的命令消息控制 166
12.4.2 更新命令用户接口(UI)消息 166
12.5 应用框架的内含菜单项 167
12.4.3 对话框发送的命令 167
12.6 菜单项的允许/禁止 168
12.8 EX12A例程序 169
12.7 CEditView类 169
12.9 CMenu类 174
12.10 扩展命令处理 175
12.11 EX12B例程序 176
13.1 控制条和应用框架 181
13.2 工具条 181
第十三章 工具条和状态条 181
13.2.3 工具条和命令消息 182
13.2.2 按钮的状态 182
13.2.1 工具条位图 182
13.2.4 工具条更新命令UI消息 183
13.3 寻找主框架窗口 184
13.4 EX13A工具条例程序 185
13.5 状态条 189
13.5.1 状态条的定义 189
13.5.2 信息行 190
13.5.3 状态指示器 190
13.5.4 获得对状态条的控制 191
13.6 EX13B状态条例程序 191
14.1 为什么可重用基类难以设计 196
14.2 CPersistentFrame类 196
第十四章 可重用基类 196
14.4 Windwos的INI文件 197
14.3 CFrameWnd类和ActivateFrame成员函数 197
14.5 使用CString类 199
14.7 静态数据成员 201
14.8 缺省窗口矩形 201
14.6 极大窗口的位置 201
14.9 EX14A例程序 202
14.10 MDI应用中的持续框架 207
15.1 文档-视之间的相互作用函数 208
15.1.1 CView类的GetDocument函数 208
第十五章 文档与视的分离 208
15.1.2 CDocument类的UpdateAIIViews函数 209
15.1.3 CView类的OnUpdate函数 209
15.2 最简单的文档-视应用 210
15.1.4 CView的OnInitialUpdate函数 210
15.3 CFormView类 211
15.5 诊断信息转储 212
15.5.1 TRACE宏 212
15.4 CObject类 212
15.5.2 afxDump对象 213
15.5.3 信息转储环境及CObject类 213
15.5.4 未被删除对象的自动信息转储 214
15.6 EX15A例程序 214
15.7 更加高级的文档-视之间的相互作用 221
15.8 CDocument的Delete Contents函数 222
15.9 CObList集合类 223
15.9.1 对先入先出(FIFO)表使用CObList类 223
15.9.2 在CObList中进行迭代--POSITION变量 225
15.9.3 信息转储环境及集合 225
15.10 EX15B例程序 226
15.11 CEx15bApp 227
15.12 CMainFrame 228
15.12.1 CStudentDoc 228
15.12.6 DeleteContents 231
15.12.7 Dump 231
15.12.5 GetList 231
15.12.2 ClassWizard和CStudentDoc 231
15.12.3 数据成员 231
15.12.4 构造函数和析构函数 231
15.13 CStudentView 232
15.13.1 ClassWizard和CStudentView 238
15.13.5 工具条按钮命令消息控制函数 239
15.13.6 工具条按钮的更新命令UI消息控制函数 239
15.13.4 OnUpdate 239
15.13.2 数据成员 239
15.13.3 OnInitialUpdate 239
15.14.2 Edit菜单 240
15.14.3 IDD-STUDENT对话框 240
15.14.1 符号 240
15.13.7 protected型虚函数 240
15.14 资源要求 240
15.14.5 测试EX15B应用 241
15.14.4 工具条 241
15.15 留给读者的两个练习 242
16.1 什么是序列化? 243
16.1.1 磁盘文件和归档(Archives) 243
第十六章 读和写文档--单文档接口 243
16.1.3 编写序列化函数 244
16.1.2 使类可序列化 244
16.1.4 从归档中装入--内嵌对象和指针 245
16.1.5 使集合序列化 248
16.1.6 序列化函数和应用框架 248
16.2.2 文档模板类 249
16.2.1 Windows应用对象 249
16.2 SDI应用 249
16.2.3 文档模板资源 250
16.2.6 创建空文档--CWinApp的OnFileNew函数 252
16.2.7 文档类的OnNewDocument函数 252
16.2.5 SDI文档的多视 252
16.2.4 多文档类型 252
16.2.9 文档类的DeleteContents函数 253
16.2.10 将File Save和File Save As与序列化代码相连接 253
16.2.8 将File Open与序列化代码相连接--OnFile Open 253
16.3 EX16A--序列化SDI例程序 254
16.2.11 文件的IsModified标记 254
16.4 CStudent 255
16.5 CEx16aApp 256
16.6 CFrameWnd 260
16.7 CStudentDoc 262
16.7.4 CStudentView 263
16.7.5 AppWizard和EX16A 263
16.7.3 OnUpdateFileSave 263
16.7.1 Serialize 263
16.7.2 OnOpenDocument 263
16.7.6 测试EX16A应用 264
16.7.7 File Manager中的文档相关 264
17.1 MDI应用 266
第十七章 对文档的读和写--MDI 266
17.1.1 一个典型的类库MDI应用 267
17.1.4 MDI框架窗口和子窗口 269
17.1.3 MDI文档模板类 269
17.1.2 MDI应用对象 269
17.1.5 主框架和文档模板资源 270
17.1.7 为现存文档创建新的视 271
17.1.8 装入和存入文档 271
17.1.6 创建空文档--CWinApp类的OnFileNew函数 271
17.2 拖和放--程序和文档 272
17.2.1 程序登记 272
17.2.3 允许内嵌启动 273
17.2.4 程序启动参数 273
17.2.2 允许拖和放 273
17.4 CEx17aApp 274
17.3 EX17A例程序 274
17.2.5 响应DDE消息 274
17.5 CMainFrame 278
17.5.1 测试EX17A应用 281
17.6 EX17B例程序 281
18.1 Windows的打印 284
18.1.1 标准打印机对话框 284
第十八章 打印和打印预显 284
18.1.2 交互选择打印页码 285
18.1.3 显示页和打印页 285
18.3.1 打印机设备环境和CView的OnDraw函数 286
18.3.2 CView类的OnPrint函数 286
18.3 有关打印机的程序设计 286
18.2 打印预显 286
18.3.4 打印工作的开始和结束 287
18.3.3 准备设备环境--CView类的OnPrepareDC函数 287
18.4 EX18A例程序--一个所见既所得的打印程序 288
18.5 EX18B例程序--多页打印程序 293
18.6 留给读者的一些练习 297
19.1 切分窗口 298
19.2 多视选择 298
第十九章 切分窗口和多视 298
19.5 CMainFrame 299
19.4 EX19A--具有单个视类的SDI动态切分例子 299
19.3 动态和静态切分窗口 299
19.6 资源需求 300
19.9 CHexView 301
19.8 EX19B--双视类SDI静态切分例子 301
19.7 测试EX19A应用 301
19.10 CMainFrame 302
19.13 CEx19cApp 303
19.12 EX19C--多视类MDI例子 303
19.11 测试EX19B应用 303
19.14 CMainFrame 304
19.15 资源要求 306
19.16 测试EX19C应用 306
20.1.1 复文本格式(RTF) 307
20.1 Windows的WINHELP程序 307
第二十章 上下文相关帮助 307
20.1.2 编写简单的帮助文件 308
20.2 应用框架与WINHELP 312
20.2.1 调用WINHELP 312
20.2.3 帮助上下文别名 313
20.2.4 决定帮助上下文 313
20.2.2 使用搜索字符串 313
20.2.6 F1帮助 314
20.2.7 Shift-F1帮助 314
20.2.5 进入帮助的菜单 314
20.3 帮助例子--不需要任何编程 315
20.2.9 一般的帮助 315
20.2.8 消息框帮助--AfxMessageBox函数 315
20.4 MAKEHELP处理 317
20.5 帮助命令处理 318
20.5.1 F1处理过程 318
20.6 帮助命令处理例程序--EX20B 319
20.7 头文件要求 319
20.5.2 Shift-F1处理过程 319
20.9 CMDIHelpWnd 320
20.8 CEx20bAPP 320
20.10 CStringView 321
20.13 帮助文件要求 322
20.12 资源要求 322
20.11 CHexView 322
20.14 创建并测试该应用 323
第二十一章 一个实际的基于Windows的应用 324
21.1 MATPLAN应用 324
21.3 CMatplanApp 326
21.3.1 InitInstance 326
21.2 对MATPLAN应用的分析 326
21.5.2 CMatplanDoc 327
21.5.3 构造函数 327
21.5.1 OnCommandHelp 327
21.3.2 ExitInstance 327
21.4 CMainFrame 327
21.4.1 OnWindowNew1 327
21.4.2 OnWindowNew2 327
21.5 CMDISpecialChildWnd 327
21.5.7 OnUpdateEditClearAll 328
21.5.8 OnUpdateFileSave 328
21.5.6 OnEditClearAll 328
21.5.4 Serialize 328
21.5.5 DeleteContents 328
21.6.1 Draw 329
21.6.2 PrintLine 329
21.6 CPiece 329
21.6.3 Serialize 330
21.6.4 InsertInList,ExtractFromList 330
21.7.1 构造函数 331
21.7.2 DoDataExchange 331
21.7 CMatplanDialog 331
21.7.3 OnCancel 332
21.7.4 OnClickedCancel,OnClickedClear,OnClickedDelete,OnClickedInsert.OnClickedUpdate 332
21.8.1 OnPrepareDC 333
21.8.2 OnDraw 333
21.8 ClistView 333
21.7.5 OnClose 333
21.8.3 OnPrint 334
21.8.4 OnUpdate 334
21.8.7 OnCreate 335
21.8.8 OnPaint 335
21.8.6 OnBeginPrinting,OnEndPrinting 335
21.8.5 OnPreparePrinting 335
21.8.9 OnSize 336
21.8.10 OnListBoxDblClk 336
21.8.13 UpdatePlanDocument 337
21.9 CPlanView 337
21.8.12 StartNewList 337
21.8.11 OnCommandHelp,OnHelpHitTest 337
21.9.4 OnCreate 338
21.9.3 OnUpdate 338
21.9.2 OnPreparePrinting 338
21.9.1 OnDraw 338
21.9.5 OnPaint 339
21.9.7 OnMouseMove 340
21.9.6 OnLButtonDown 340
21.9.8 OnLButtonUp 341
21.9.12 ShowOverlap 342
21.9.13 SafeScrollTo 342
21.9.11 OnCommandHelp,OnHelpHitTest 342
21.9.9 OnLButtonDblClk 342
21.9.10 OnKeyDown 342
21.10.1 IDD_FORM对话框 343
21.10.2 IDR_MATTYPE菜单 343
21.10 MATPLAN资源文件 343
21.11 头文件 344
21.12 创建并测试MATPLAN应用 344
21.10.3 符号 344
第二十二章 不带文档和视的Microsoft基本类库2.0版程序 347
22.1 EX22A例子--一个SDI应用 347
第四部分 高级话题 347
22.3.2 OnPaint 350
22.3.3 OnClose 350
22.3.1 构造函数 350
22.2 CEx22aApp 350
22.2.1 InitInstance 350
22.3 CMainFrame 350
22.4 资源要求 351
22.5 EX22B例程序--一个基于对话框的应用 351
22.3.5 OnFile,OnHlp 351
22.3.4 OnQueryEndSession 351
22.8 资源要求 354
22.7.4 OnClickedCompute 354
22.7.3 DoDataExchange 354
22.6 CEx22bApp 354
22.6.1 数据成员 354
22.6.2 InitInstance 354
22.7 CEx22bDialog 354
22.7.1 数据成员 354
22.7.2 构造函数 354
22.9 EX22C例程序--一个MDI应用 355
22.11.4 OnFileNew 359
22.11.5 OnWindowCloseAll 359
22.11.3 OnQueryEndSession 359
22.10 CEx22cApp 359
22.10.1 InitInstance 359
22.11 CMainFrame 359
22.11.1 构造函数 359
22.11.2 OnClose 359
22.12.3 OnPaint 360
22.12.4 OnClose 360
22.12.2 构造函数 360
22.11.6 OnUpdateWindowCloseAll 360
22.11.7 CloseAllChildWindows 360
22.12 CChidFrame 360
22.12.1 数据成员 360
22.12.6 删除CMDIChildWnd对象 361
22.13 资源要求 361
22.12.5 OnFileClose 361
23.1 Windows的DIB格式 362
第二十三章 将位图存入文档--DIB和裁剪板 362
23.2 DIB、颜色以及调色板 363
23.3 通过裁剪板来传递图象 364
23.4 位图裁剪板规则 364
23.5 Microsoft基本类库文档中的DIB 365
23.6 CDib类 365
23.7 DIB访问函数 373
23.8 EX23A例程序 374
23.9.3 Serialize 375
23.9.4 OnEditClearAll 375
23.9.2 DeleteContents 375
23.9 CEx23aDoc 375
23.9.1 构造函数,析构函数 375
23.11.1 内存申请 376
23.11.2 大位图的序列化 376
23.11 CDib 376
23.10 CBitsDialog 376
23.12.2 OnCreate 377
23.12.1 构造函数,析构函数 377
23.12 CEx23aView 377
23.12.3 OnDraw 378
23.12.4 OnEditCopy 379
23.12.5 OnEditCopyTo 379
23.12.8 OnEditPasteFrom 380
23.12.9 OnPrint 380
23.12.7 OnEditPaste 380
23.12.6 OnEditCut 380
23.13 EX23A资源文件 381
23.13.1 IDD_BITS对话框资源 381
23.12.11 更新命令UI函数 381
23.12.10 OnUpdate 381
23.14 测试EX23A应用 382
23.15 位图操作 382
23.13.2 IDR_MAINFRAME菜单资源 382
第二十四章 Microsoft ODBC数据库管理 384
24.1 数据库管理和序列化 384
24.1.3 ODBC结构 385
24.1.2 ODBC标准 385
24.1.1 SQL 385
24.1.4 ODBC环境、连接和语句 386
24.1.5 ODBC API 387
24.1.6 数据库访问程序 389
24.2 ODBC、类库和面向对象程序设计 390
24.3 类库对话框条 390
24.4 应用的关闭 391
24.5 行一视类 391
24.5.2 将工作分摊手基类和派生类 400
24.5.3 CRowView的纯虚成员函数 400
24.5.1 滚动问题 400
24.5.4 CRowView的其它函数 401
24.6 EX24A例程序 401
24.7 CEx24aApp 402
24.8 CMainFrame 402
24.9.3 DeleteContents 403
24.9.4 SaveModified 403
24.9.2 OnNewDocument,OnOpenDocument,OnSaveDocument 403
24.9 CEx24aDoc 403
24.9.1 数据成员 403
24.9.8 数据成员 404
24.9.9 OnUpdate 404
24.9.7 CEx24aView 404
24.9.5 Serialize 404
24.9.6 OnFileConnect,OnFileDisconnect 404
24.9.10 OnDrawRow,GetRowWidthHeight,GetActiveRow,GetRowCount,ChangeSelectionNextRow,ChangeSelectionToRow 405
24.9.11 OnQueryExecute 405
24.9.13 OnMouseAcivate 407
24.10 EX24A资源文件 407
24.9.12 OnSetFocus 407
24.11 运行EX24A程序 408
24.12 对EX24A的进一步讨论 409
25.1.1 从用户的角度来看OLE 410
25.1 OLE基础 410
第二十五章 对象连接与嵌入(OLE) 410
25.1.2 客户和侍者 411
25.1.5 插入和粘贴 412
25.1.6 内嵌项和连接项 412
25.1.4 OLE项和C++对象 412
25.1.3 完备侍者和最小侍者 412
25.1.8 OLE动词 413
25.1.9 OLE侍者登记 413
25.1.7 手工连接和自动连接 413
25.1.11 Microsoft基本类库2.0版与OLE 415
25.1.10 客户--侍者数据交换格式 415
25.1.12 OLE1.0 版和OLE2.0版 416
25.2.2 客户文档结构 417
25.2.3 客户驱动 417
25.2.1 OLE客户类 417
25.2 OLE客户应用 417
25.2.4 客户响应 421
25.3 EX25A OLE客户例程序 422
25.6 CEx25aDoc 423
25.6.1 OnNewDocument 423
25.5 CMainFrame 423
25.4 CEx25aApp 423
25.7 CStudent 424
25.7.1 析构函数 424
25.6.3 Serialize 424
25.6.2 DeleteContents 424
25.8 CEx25aItem 425
25.8.1 OnChange 425
25.7.2 Serialize 425
25.9 CEx25aView 426
25.9.1 OnDraw 426
25.9.2 IsSelected 427
25.9.3 OnInsertObject 427
25.9.6 UpdateOLeControls 428
25.10 EX25A的资源要求 428
25.9.5 OnEditPaste,OnEditPasteLink,OnEditCopy,OnEditCut 428
25.9.4 OnClickedPrimary 428
25.11.1 OLE侍者类 429
25.11 OLE侍者应用 429
25.11.2 客户--侍者OLE对象之间的关系 430
25.11.3 启动侍者 431
25.11.4 侍者驱动 431
25.11.5 侍者响应 432
25.12 EX25B OLE侍者例程序 434
25.14 CMainWnd 435
25.14.1 构造函数 435
25.13 CEx25bApp 435
25.14.4 OnUpdateClient 436
25.14.5 OnExit 436
25.14.3 OnSize 436
25.14.2 OnCreate 436
25.17 CEx25bItem 437
25.17.1 构造函数 437
25.16 CEx25bServerDoc 437
25.14.6 OnClose 437
25.14.7 OnEditChange 437
25.15 CEx25bServer 437
25.17.3 OnShow 438
25.17.4 OnDraw 438
25.17.2 OnDoVerb 438
25.18 CReadDialog 439
25.18.1 OnInitDialog 439
25.17.6 Serialize 439
25.17.5 OnRead 439
25.18.3 OnDestroy 440
25.19 EX25B例程序对资源的要求 440
25.18.2 OnCtlColor 440
26.1 为什么使用DLL? 442
26.2 传统的DLL 442
第二十六章 动态连接库(DLLs) 442
26.3 类库DLL 443
26.3.1 类库DLL的使用仅限于MicrosoftC++编译器 443
26.3.2 作为DLL的类库类 444
26.3.3 在应用中使用MFC 200D.DLL 444
26.3.4 类库扩展DLL 445
26.3.5 类库DLL内存使用 445
26.3.6 扩展DLL需要的一些代码 446
26.3.7 搜索资源 446
26.3.8 内联构造函数 447
26.3.9 扩展DLL的引出 447
26.3.11 扩展DLL运行时刻类的确定 448
26.3.12 创建DLL 448
26.3.10 类静态数据成员 448
26.3.14 DLL的调试版和发行版 449
26.4 EX26A--编写自己的类库扩展DLL 449
26.3.13 创建引入库 449
26.4.1 EX26AD.DEF文件 450
26.4.2 EX26AD工程的Visual工作平台选项 451
26.5 EX26B--使用类库扩展DLL 452
26.6 CEx26bApp 452
26.4.3 创建引入库并拷贝DLL 452
26.7 CEx26bDoc 453
26.8 CEx26bView 453
26.10 创建并测试EX26B程序 454
26.9 CStudentDialog 454
26.10.1 资源访问 455
第五部分 附录 459
附录A C++语言之我见 459
附录B Microsoft基本类库中的消息映射函数 489
附录C 本书中用到的Microsoft Windows函数 493
附录D Visual C++,Windows NT版本 495
10.7 利用位图改进屏幕显示 1341