第一部分 创建Visual C++应用程序 1
第1章 设计和生成Visual C++程序 1
启动Visual C++ 1
创建新项目 1
选择项目类型 1
项目的命名及其位置的选择 3
AppWizard的使用 3
基本的APP Wizard选项 3
应用程序的构建和执行 5
选择要构建的配置 5
执行编译和链接 5
应用程序的运行 5
Windows接口 5
修改应用程序接口 7
增添按钮控件 7
将代码连接到接口上 9
测试修改后的应用程序 11
保存和关闭项目 14
第2章 开发环境 15
开发工作室(Developer Studio)的使用 15
打开现有的项目 15
Project Workspace窗口 17
Class View 17
ResourceView 23
FileView 27
项目的管理 28
项目设定值 28
其他配置 29
第二部分 对话框和控件 31
第3章 创建和设计对话框 31
创建对话框模板 31
设置对话框ID 34
对话框的一般特性 35
对话框的风格 36
增加和定位各种控件 36
调整控件的尺寸 40
选择几个控件 41
控件的对齐 41
使用标志线 42
对话框控件的组织 43
组框 43
设置Tab键控制顺序 44
设置键盘快捷键 45
第4章 按钮控件 46
下压按钮(pushbutton) 46
增加用于按钮单击事件的处理器 47
消息映射 48
在运行时修改下压按钮 49
单选钮(radio button) 54
增加单选钮组 55
检索选定的单选钮 56
复选框(check box) 59
增加复选框 59
获取和设置复选框 60
第5章 文本控件 64
静态文本控件 64
格式化对话框中的文本 64
静态文本与编辑框的组合 65
在运行时修改静态文本控件 65
编辑框控件 69
增加编辑框 70
设置和检索编辑框文本 71
对编辑通知消息的响应 72
建立编辑控件的子类 75
多行编辑控件 79
第6章 列表控件 80
创建列表控件 80
增加组合框 80
增加树控件 82
增加列表框控件 83
增加列表控件 84
在列表类控件中增加项 86
填充组合框 86
对组合框通知消息的响应 88
填充树控件 89
填充列表框 92
对列表框通知消息的响应 93
填充列表控件 95
第7章 进度、滚动条、滑块、日期时间等控件 99
面向范围的控件 99
进度控件 99
在对话框中增加进度控件 99
变量和进度控件间的映射 101
进度控件的操作和更新 101
设置进度控件的范围 102
设置进度控件的位置 102
设置和使用步进值 103
滚动条控件 103
在对话框中增加滚动条控件 103
变量和滚动条控件之间的映射 104
初始化滚动条控件 105
滚动条通知消息的处理 106
滑块控件 109
在对话框中增加滑块控件 109
变量和滑块控件间的映射 110
滑块控件的初始化 111
对滑块通知的响应 112
日期时间选择器控件 113
在对话框中增加日期时间选择器控件 113
变量和日期时间选择器控件间的映射 114
日期时间选择器控件的初始化 115
对日期修改通知的响应 118
月历控件 120
在对话框中增加月历控件 120
变量和月历控件间的映射 121
月历控件的初始化 121
月历控件日期范围的选择 122
对日期范围修改通知的响应 123
第8章 对鼠标器事件的响应 124
处理按钮消息 124
按钮弹起和按钮压下事件的处理 124
捕捉双击事件 128
跟踪鼠标器的运动和位置 129
鼠标器移动事件的处理 129
捕捉鼠标器输入 132
设置命中测试 133
CRectTracker类 134
第9章ActiveX控件 138
从组件库中选择和增加ActiveX控件 138
浏览ActiveX控件 138
在当前项目中插入新控件 139
从控件选项板中选择ActiveX控件、定尺寸和测试 141
在对话框中增加ActiveX控件 141
从对话框编辑器中增加ActiveX控件 141
从对话框编辑器中测试控件 142
在资源编辑器中修改控件特性 142
设置标准特性 143
使用控件特性页 143
控件所提供的类 144
增加控件调度类成员变量 144
从程序中获取和设置控件特性 145
利用ClassWizard增加ActiveX事件处理器 147
第10章 对话框 150
创建对话框类 150
增加新的对话框模板资源 150
利用ClassWizard从CDialog中派生类 151
初始化新对话框类 152
模态对话框的显示 153
增加存贮对话框数据的成员变量 155
对话框数据交换和数据有效性 156
数据交换(DDX)函数 157
数据有效性(DDV)函数 158
创建定制的有效性函数 160
非模态对话框 161
创建和销毁非模态对话框 161
在非模态对话框中设置和取出数据 164
在非模态对话框中处理关闭消息 167
删除关闭选项 167
第三部分 应用程序元素 169
第11章图像、位图和图标 169
图像编辑器 169
创建和编辑图标资源 171
修改缺省的MFC图标 171
插入新的图标资源 171
插入新的位图资源 173
调整位图的尺寸和颜色 173
输入图像 174
对话框中的图像 175
设置图片控件的特性 176
在运行时装入资源图像 176
创建位图按钮 180
创建用于按钮状态的位图 180
位图按钮类 181
控件中的图像 182
图像列表 182
创建和使用图像列表 184
第12章 文档、视图和图文框 189
创建SDI应用程序 189
SDI应用程序的类 192
SDI应用程序的可视元素 194
SDI文档模板 195
文档/视图框架函数 197
CSingleDocTemplate::OpenDocumentFile 199
CDocument:OnNewDocument 200
CDocument::OnOpenDocument 200
CDocument::OnSaveDocument 200
CDocument::DeleteContents 200
CDocument::OnCloseDocument 200
文档和视图的一起使用 201
初始化文档数据 201
将成员变量增添到文档中 201
从视图中访问文档数据 203
标准模板资源 204
更新视图内容 206
第13章 菜单 208
创建和编辑菜单资源 208
增加新的菜单资源 208
增加菜单标题项 209
增加菜单项 209
赋予命令ID 211
修改菜单项特性 211
增加分隔符 211
创建弹出子菜单项 212
增加复选标记 212
增加快捷键 212
菜单命令的处理 213
增加菜单命令处理器函数 213
增加命令用户接口处理器函数 215
允许和禁止菜单选项 215
设置或清除复选标记 215
动态修改菜单文本 216
增加环境菜单 217
启动环境菜单 217
环境菜单命令的处理 220
创建和访问菜单对象 220
初始化CMenu对象 221
动态增加菜单项 222
动态修改菜单项 224
动态删除菜单项 225
第14章 工具条和状态条 226
定制标准框架工具条 226
标准工具条 226
创建标准工具条 227
驳接标准工具条 228
利用资源编辑器增加工具条按钮 230
移动和删除按钮、增加分隔符 232
允许和禁止工具条按钮 232
增添你自己的工具条 233
增加新的工具条资源 233
将工具条增添到图文框窗口中 233
隐藏和显示工具条 234
存贮和装入工具条位置 235
对话框条 236
增加对话框条资源 237
将对话框条增添到图文框窗口中 237
处理对话框条控件 239
定制状态条 241
标准状态条 241
增加指示器和分隔符 243
动态修改窗格的尺寸、风格和文本 246
Internet Explorer风格的超级条(rebar) 249
AppWizard的框架超级条 250
设置超级条的标题和背景位图 251
第四部分 绘图 253
第15章 在设备环境中绘图 253
设备环境简介 253
设备环境的类型 253
CDC类 254
客户设备环境 258
画图设备环境 259
内存设备环境 263
映射方式 265
自由伸缩映射方式 268
检索设备功能 269
第16章 笔和刷子 275
创建笔 275
CPen类 275
设置笔类型 275
改变笔的宽度 275
改变笔的颜色 276
使用常备笔 277
选择设备环境中的笔 277
删除笔 279
用笔画线条和形状 280
创建绘图的设备环境 280
移动笔的位置 281
画线条 282
利用点坐标绘图 283
画圆和椭圆 285
画曲线 287
画多边形 288
创建刷子 289
CBrush类 290
创建带色和阴影的刷子 290
窗口背景的着色 290
根据图案和图像创建刷子 292
常备刷子 293
选择设备环境中的刷子 295
删除刷子 296
用刷子画实心形状 296
画矩形和圆角矩形 296
画实心椭圆和圆 297
画弦形和楔形 298
画多边形 298
第17章 字体 302
显示文本的函数 302
显示简单的文本 302
设置文本对齐方式 303
修改前景和背景的颜色 304
显示不透明的或透明的文本 306
针对矩形剪裁文本 307
创建各种字体 308
CFont类 308
利用CreatePointFont()创建字体 308
利用CreateFont()创建字体 309
设置字体的高度和宽度 309
设置字体的倾斜和转向 310
设置粗体、斜体、下划线和勾销线 310
设置质量和精度 311
设置特定的字体名 312
用CreateFont()函数创建字体 312
字体的选用 314
枚举字体 314
Choose Font对话框 318
显示格式化的和多行的文本 321
删除字体 323
第五部分 文档和视图的高级技术 325
第18章 视图的尺寸调整和滚动 325
调整窗口尺寸的处理 325
尺寸调整事件的处理 325
处理尺寸调整事件 326
最终尺寸事件的处理 328
设置尺寸限制 333
创建可调整尺寸的对话框 334
窗口的滚动 335
设置滚动尺寸 335
改变页和行滚动量 337
当前滚动位置 339
滚动条消息的处理 340
第19章 列表、树、多信息编辑和HTML视图 344
什么是列表视图、树视图和多信息编辑视图? 344
创建和使用列表视图 344
利用AppWizard创建列表视图应用程序 344
插入项 345
修改列表风格 348
增加列和列标题 350
检索选择的列表 354
创建和使用树视图 356
利用AppWizard创建树视图应用程序 356
修改树风格 357
插入项 357
检索选择的节点 360
内联编辑的处理 362
创建和使用多信息编辑视图 364
创建多信息编辑视图 364
装入和保存视图文本 365
格式化段落 365
插入OLE对象 367
创建和使用HTML浏览器视图 367
创建HTML视图 368
设置统一资源定位器 368
浏览器事件的处理 369
第20章 创建多视图 370
什么是多视图? 370
拆分窗口 370
创建动态拆分窗口 370
初始化动态拆分窗口 372
创建静态拆分窗口 374
初始化静态拆分窗口 375
创建Windows资源管理器风格的应用程序 379
按要求创建多视图 379
增加和删除视图 380
控件视图的创建和激活 380
第21章 开发多文档应用程序 386
创建多文档接口(MDI)应用程序 386
MDI应用程序的类 388
MDI应用程序的可视元素 390
MDI文档模板 392
文档、视图和MDI图文框的创建序列 394
在文档/视图对象间导航 396
开发模板MDI应用程序 397
将成员变量增加到文档中 397
从视图访问文档数据 398
修改文档数据和更新视图 399
增加新的文档模板 402
第22章 打印和打印预览 408
框架的功能 408
缺省的打印功能 408
重构OnPrint() 412
打印机设备环境 414
保持纵横比 415
分页和打印方向 418
起始和结束页的设置 418
Print对话框 421
纵向和横向打印 424
利用OnBeginPrinting()增加GDI对象 425
定制设备环境的准备 426
放弃打印作业 427
无需框架直接打印 427
直接调用Print对话框 427
StartDoc()和EndDoc()函数 429
StartPage()和 EndPage()函数 429
第六部分 外部的应用程序数据 431
第23章 数据的保存、加载和传输 431
串行化 431
创建处理文件的SDI框架 431
创建可串行化的数据对象 433
说明可串行化的类 433
实现可串行化的类 435
存放文档数据 438
串行化数据对象 441
最近使用的文件表 443
登记文档类型 443
文件处理 443
CFile类 444
打开文件 444
读/写文件 445
操纵当前文件位置 448
查找文件信息 449
更名和删除文件 451
CFile派生的其他类 451
利用剪贴板传送数据 452
设置剪贴板数据格式 452
将数据拷贝到剪贴板 453
粘贴来自剪贴板的数据 456
第24章 数据库和记录视图 458
数据库 458
关系数据库 458
开放式数据库连接(ODBC) 458
配置数据源 460
生成支持数据库的应用程序 462
利用AppWizard增加数据库支持 462
连接数据库 463
查询数据库值 465
更新数据库值 467
将字段捆绑到数据库表中 468
创建和使用记录视图 469
编辑记录视图模板 469
编辑控件和记录集字段的连接 469
第25章OLE和COM编程 472
基于组件的编程 472
COM接口 473
接口ID、类ID和GUID 474
创建COM对象的实例 476
代理DLL和编组 478
接口版本 478
OLE自动化 478
调度接口 479
VARIANT结构 480
创建自动化服务器 481
创建自动化客户 487
OLE容器、服务器和小型服务器 490
第七部分 高级课题 493
第26章 创建ActiveX控件 493
利用Active Control Wizard创建ActiveX框架 493
指定控件数量、许可证和帮助 493
指定类名和使用选项 493
建立现有控件的子类以增加功能 495
先进的ActiveX功能 496
控件的实现 496
画控件 497
处理用户事件和输入 499
控件的快速部分测试 500
事件触发 501
创建特性接口 503
常备特性 504
增加常备颜色特性页 505
增加定制特性 506
为定制特性增加特性页控件 508
持久特性 511
控件的编译和登记 512
各种源文件 513
创建类型库和许可证文件 513
控件的登记 514
利用ActiveX Control Test Container进行测试 514
选择和插入控件 514
测试控件特性 514
测试环境特性 515
记录触发的事件 515
第27章 综合调试器 517
创建调试和浏览信息 517
调试方式和发布方式 517
设置调试选项和级 518
创建和使用浏览信息 520
远程和适时调试 521
跟踪和单步执行 523
TRACE宏 523
ASSERT和VERIFY宏 526
断点和单步执行程序 527
Edit和Continue 530
查看程序变量 530
其他的调试器窗口 531
其他调试工具 532
Spy++++ 532
进程查看器 534
OLE/COM对象查看器 535
MFC跟踪器 535
第28章 应用程序编程接口(API)和软件开发套件(SDK) 536
API和SDK简介 536
利用DirectX实现高速声音和图像 536
DirectSound 537
DirectDraw 544
Direct3D 551
DirectPlay 552
DirectInput 552
DirectSetup 552
利用MAPI创建消息和电子邮件 552
简单MAPI 553
利用AppWizard增加MAPI发送邮件 554
视频和声音多媒体库 558
媒体控置接口(MCI) 558
MCI通知消息 561
增加MCI窗口 565
附录一 词汇表 569
附录二Microsoft基础类层次结构(6.0版) 589