第1章 VC++NET综述 1
1.1.NET平台 2
1.2 IDE 5
1.2.1 组成 5
1.2.2 自定义IDE 11
1.3 VC++NET的新增功能 12
1.3.1 建立项目 12
1.3.2 C++托管 13
1.3.3属性化编程 16
1.3.4库的变化 17
第2章定制窗口 19
2.1 MFC窗口 20
2.1.1创建窗口 21
2.1.2注册窗口 21
2.1.3关闭和销毁窗口 22
2.1.4激活窗口 22
2.2示例——设置窗口风格 22
2.2.2修改窗口默认风格 23
2.2.1界面设计 23
2.2.3设置窗口背景 24
2.2.4更改窗口标题 25
2.2.5 更改窗口图标 25
2.2.6使用动画窗口 27
2.2.7使用透明窗口 28
2.2.8使窗口总在最前 29
2.3创建非规则形状的窗口 31
2.3.1 示例——创建六边形窗口 32
2.3.2示例——创建异形窗口 34
第3章菜单和控制条高级编程 39
3.1菜单 40
3.1.1 CMenu类 40
3.1.2菜单编程要点 41
3.1.3示例——菜单编程 45
3.2 工具栏 49
3.2.1 CToolBar类简介 49
3.2.2工具栏编程要点 54
3.2.3示例——工具栏编程 56
3.3.1 CStatusBar类 62
3.3状态栏 62
3.3.2使用状态栏要点 66
3.3.3示例——状态栏编程 66
3.4对话条 70
3.4.1 CDialogBar类 71
3.5 ReBar控件 72
3.5.1 CReBar类 72
3.5.2示例——为工具栏添加皮肤 73
第4章控件及其编程 77
4.1控件概述 78
4.2创建控件 79
4.2.1列表控件 80
4.2.2选项卡控件 87
4.3从标准控件派生控件 90
4.4接收来自公共控件的通知 91
4.5常用控件 92
4.5.1静态控件 92
4.5.2编辑控件 93
4.5.3按钮控件 96
4.5.4组合框控件 101
4.5.5列表框控件 104
4.5.6滑块控件 107
4.5.8滚动条控件 113
4.5.9数值调节钮控件 117
4.5.10图像列表控件 119
4.5.11树控件 123
第5章系统编程 131
5.1.1注册表 132
5.1注册表编程 132
5.1.2操作注册表的Win32API函数 134
5.1.3支持注册表操作的NET Framework类 136
5.1.4示例——操作注册表 137
5.2系统托盘编程 142
5.2.1 概述 142
5.2.2示例——系统托盘编程 144
5.3 Win32钩子技术 146
5.3.1钩子类型 147
5.3.2编写钩子程序 148
5.3.3示例——鼠标钩子程序 149
5.4文件处理 153
5.4.1 序列化 153
5.4.2使用 CFile类 159
5.4.3示例——文件分割器 162
5.5剪贴板编程 167
5.5.1 概述 167
5.5.2选择剪贴板机制 167
5.5.3使用Windows标准剪贴板 167
5.5.4 使用OLE剪贴板机制 169
第6章 多文档/多视图编程 173
6.1文档/视图体系 174
6.1.1文档/视图体系概述 174
6.1.2文档模板和文档/视图的创建过程 176
6.2创建单文档多视图程序 178
6.2.1标准的单文档多视界面 179
6.2.2滚动和缩放视图 179
6.2.3拆分窗口 181
6.2.4示例1——单文档多视 183
6.2.5示例2——单文档多视 186
6.3多文档应用程序 193
6.4多顶级文档 193
第7章对话框高级编程 195
7.1 实现对话框数据交换和验证 196
7.2无模式对话框 197
7.2.1编程要点 197
7.2.2示例——实现无模式对话框 199
7.3通用对话框类 203
7.3.1 CColorDialog类 203
7.3.2 CFileDialog类 204
7.3.3 CFindReplaceDialog类 205
7.3.4 CFontDialog类 206
7.3.5 CPrintDialog类 207
7.4属性表与属性页 207
7.4.1属性表及运行机制 207
7.4.2 CPropertySheet类 209
7.4.3 CPropertyPage类 211
7.4.4创建属性表 212
7.4.5示例——使用模式属性表及向导属性表 213
7.5 Web对话框 220
7.5.1创建Web对话框的一般方法 221
7.5.2使用“Web对话框”编辑器 223
7.5.3 Web对话框编程 230
7.5.4示例——鼠标敏感文字 232
第8章 GDI+图形编程 235
8.1 GDI+概述 236
8.1.1 GDI+的组成 236
8.1.2新增功能 237
8.1.3 GDI+的接口类 239
8.1.4编程模式的变化 243
8.2图形绘制 247
8.2.1使用GDI+步骤 247
8.2.2坐标系统和变形 249
8.2.3使用Pen对象绘制线条和形状 257
8.2.4使用Brush对象填充形状 261
8.2.5构造并绘制曲线 269
8.2.6构造并绘制轨迹 271
8.2.7重新着色 273
8.2.8图形容器 280
8.2.9区域与剪辑 282
8.3文本与字体 285
8.3.1构造字体系列和字体 285
8.3.2绘制文本 286
8.3.3设置文本格式 287
8.3.4.设定文本输出质量 290
8.4 GDI+图像处理 291
8.4.1文件格式 291
8.4.3 DrawImage方法 293
8.4.2 Image和Bitmap类 293
8.4.4 图元文件 297
8.4.5 CImage类 298
8.4.6示例——图像浏览器 298
第9章多线程编程 301
9.1进程和线程 302
9.1.1使用多个线程 303
9.1.2多线程的优点 303
9.1.3多线程的缺点 303
9.2.1启动用户界面线程 304
9.1.4线程类型 304
9.2 用户界面线程 304
9.2.2初始化线程 306
9.3辅助线程 306
9.3.1启动辅助线程 306
9.3.2实现控制函数 307
9.4挂起和恢复线程 307
9.5.3检索线程的退出代码 308
9.5.2过早终止线程 308
9.5.1正常线程终止 308
9.5终止线程 308
9.6线程通信 309
9.6.1 示例——使用全局变量通信 309
9.6.2示例——使用Windows消息通信 312
9.7线程同步 313
9.7.1线程安全类 313
9.7.2 Event对象 314
9.7.3示例——使用Event对象 315
9.7.4 CriticalSection对象 316
9.7.5示例——使用CriticalSection对象 317
9.7.6 Mutex对象 319
9.7.7示例——使用Mutex对象 320
9.7.8 Semaphore对象 321
9.7.9示例——使用Semaphore对象 322
9.8调试多线程 323
9.8.1 “线程”窗口 324
9.8.2利用“线程”窗口操作线程 324
9.8.3线程调试提示 325
第10章DLL编程 327
10.1基础知识 328
10.1.1概述 328
10.1.2 DLL的类型 329
10.2使用动态链接库 334
10.2.1 DLL的入口函数DllMain() 334
10.2.2 从DLL导出 335
10.2.3导入到应用程序 340
10.3调试DLL 347
10.4示例——创建和使用Win32DLL 349
10.5示例——创建和使用MFC DLL 352
第1 1章ATL编程 359
11.1概述 360
11.1.1.ATL简介 360
11.1.2 ATL基本技术 361
11.2示例——简单的非属性化ATL项目 362
11.2.1创建ATL项目 362
11.2.2添加控件 364
11.2.3为控件添加属性 367
11.2.4更改绘图代码 368
11.2.5添加事件 369
11.2.6添加属性页到控件 372
11.2.7测式 375
11.3示例——使用ATL开发COM组件 378
第1 2章 STL编程 383
12.1 STL简介 384
12.2算法 384
12.4迭代器 388
12.3容器 388
12.5 STL的其他部分 389
12.6示例——list编程 390
12.6.1创建项目 390
12.6.2构造list 390
12.6.3在list中插入元素 392
12.6.4统计list中的对象 394
12.6.5在list中查找对象 395
12.6.6从list中删除元素 399
12.6.7使用list的成员函数sort排序 401
12.7小结 402
第1 3章网络编程 403
13.1WinSock编程 404
13.1.1基础 404
13.1.2 MFC提供的类 407
13.1.3使用CSocket类 410
13.1.4示例——网上聊天应用程序 412
13.2.2创建Internet客户端应用程序的MFC类 424
13.2.3 使用 MFCWinInet类编写Internet客户端应用程序 424
13.2.1 Win32 Internet扩展 424
13.2 WinInet编程 424
13.2.4 Internet客户端类的前提条件 426
13.2.5 示例——简单的网页浏览器 427
13.3 ISAPI编程 432
13.3.1 ISAPI与CGI 432
13.3.2 ISAPI基础 432
13.3.3 示例——ISAPI服务器扩展编程 434
第1 4章数据库编程 437
14.1数据库基础 438
14.2 SQL 438
14.2.1 定义基本表和插入数据 438
14.2.2 SQL查询 439
14.2.3 SQL数据控制 442
14.2.4定义视图及其他 442
14.2.5数据字典 443
14.3.1 基本概念 444
14.3.2 MFC的ODBC类 444
14.3 ODBC 444
14.3.3 CDatabase类 445
14.3.4 CRecordset类 447
14.3.5 CRecordView类 454
14.3.6 示例——ODBC数据库编程 455
14.4 DAO简介 463
14.5 OLE DB/ADO 465
14.5.1通用数据访问技术 465
14.5.2 OLE DB对象模型 466
14.5.3 ADO对象模型 467
14.5.4 ADO编程要点 468
14.5.5 示例——ADO编程 479
第1 5章HTML帮助系统编程 485
15.1概述 486
15.2 HTML帮助文件的制作和使用 488
15.2.1 HTML Help Workshop编辑窗口中的工具栏 489
15.3示例——创建HTML帮助文件 490
15.3.1创建项目及HTML页 490
15.3.2设置项目选项 491
15.3.3添加主题文件 492
15.3.4添加目录和索引 493
15.3.5 设计窗口样式 494
15.3.6区分上下文帮助 496
15.4第二方Html帮助制作工具 498
15.4.1 ForeHelp 498
15.4.2 DocToHelp 499
15.4.3 RoboHelp 499
15.5在程序中使用HTML帮助 499
15.5.1 HtmlHelp()函数 499
15.5.2示例——区分上下文帮助 500
第1 6章安装和部署项目 503
16.1概述 504
16.1.1 Microsoft Windows安装程序 504
16.1.2部署项目 504
16.2设置部署项目属性 505
16.2.1在“属性”窗口中设置常规项目属性 505
16.2.2用“Install属性页”对话框配置相关属性 508
16.3部署编辑器 510
16.3.1打开部署编辑器 510
16.3.2 “文件系统”编辑器 510
16.3.5 “用户界面”编辑器 511
16.3.3注册表编辑器 511
16.3.4 “文件类型”编辑器 511
16.3.6 “自定义操作”编辑器 512
16.3.7 “启动条件”编辑器 512
16.4示例——用安装程序向导创建安装项目 512
16.5示例——部署应用程序 515
16.5.1修改Install安装项目属性 515
16.5.2确定要重新发布的依赖文件 516
16.5.5创建桌面快捷方式 517
16.5.4添加共享系统文件 517
16.5.3将Windows应用程序添加到安装程序中 517
16.5.6创建“程序”菜单项 518
16.5.7创建文件关联 519
16.5.8为Windows应用程序添加注册表键 519
16.5.9添加自定义安装对话框 520
16.5.10为应用程序创建实例文件 520
16.5.11添加启动条件检查InternetExplorer版本 521
16.5.12生成和测试安装 521
附录A虚拟键码表 523