第一部分 Visual C++2010开发与新特性第1章 Visual C++2010开发环境简介 1
1.1 Visual C++2010简介 1
1.2 Visual C++2010下载安装指南 1
1.3 Visual C++2010主要特点与新特性 3
1.4 Visual C++2010开发环境操作指南 6
1.4.1 创建Visual C++应用程序 6
1.4.2 Visual C++2010菜单介绍 9
1.5 Visual C++2010 MFC简介 12
1.6 Visual C++2010 CLR简介 13
1.7 Visual C++2010 64位编程 14
1.8 支持新的C++语言标准 14
1.8.1 支持新的C++语言标准(C++0x) 14
1.8.2 Lambda表达式 15
1.8.3 静态断言static_assert 17
1.8.4 auto关键字 18
1.8.5 右值引用 19
1.8.6 安全数据类型 22
1.8.7 移动构造 23
1.9 支持开发并行程序 26
1.9.1 运行库支持native代码 26
1.9.2 调试和分析工具 29
1.10 对MFC的增强 31
1.10.1 任务对话框CTaskDialog 31
1.10.2 重启管理器(Restart Manager)支持 33
1.10.3 支持新的用户界面风格 34
第2章 MFC应用程序框架 37
2.1 用MFC向导生成应用程序 37
2.1.1 生成的程序框架 37
2.1.2 生成的应用程序类型 43
2.1.3 向导生成工程文件简介 46
2.2 应用程序框架分析 46
2.2.1 框架简介 47
2.2.2 MFC应用程序运行流程 50
2.2.3 应用程序窗口 51
2.2.4 消息机制与消息循环 59
2.3 文档与视图 65
2.3.1 文档类结构分析 65
2.3.2 视图类结构分析 65
2.3.3 文档与视图的关系 67
2.3.4 SDI应用程序分析 69
2.3.5 MDI应用程序分析 69
2.4 工具栏与状态栏 69
2.4.1 工具栏 70
2.4.2 状态栏 78
2.5 MFC新功能——Office 2007风格程序分析 85
2.6 MFC新功能——Visual Studio风格程序分析 90
2.7 MFC新功能——Windows资源管理器风格程序分析 98
2.8 应用程序框架类对象分析 100
2.8.1 视图类对文档类的调用 100
2.8.2 在框架类中获得当前的文档类和视图类对象指针 101
2.8.3 获得应用程序类对象的指针 101
2.8.4 从应用类对象中获得主框架类对象的指针 101
2.9 小结 102
第3章 Visual C++2010 MFC菜单编程 103
3.1 菜单编程 103
3.1.1 创建菜单 104
3.1.2 创建菜单热键 115
3.1.3 标记菜单 115
3.1.4 给菜单加入图标 119
3.1.5 禁用菜单 121
3.1.6 移除与加载菜单 127
3.2 菜单消息的传输机制 129
3.2.1 菜单消息的分类 129
3.2.2 菜单消息的传输路由 129
3.3 动态菜单操作 131
3.3.1 添加菜单 131
3.3.2 插入菜单 133
3.3.3 删除菜单 135
3.3.4 插入菜单的命令响应 136
3.3.5 修改菜单 137
3.4 小结 140
第4章 Visual C++2010 MFC对话框编程 141
4.1 对话框简介 141
4.1.1 对话框的控件简介 141
4.1.2 对话框的种类简介 149
4.1.3 设计对话框 150
4.2 创建与销毁对话框 153
4.2.1 模态对话框 153
4.2.2 非模式对话框 159
4.2.3 属性页对话框 163
4.3 消息对话框 173
4.4 通用对话框 175
4.4.1 文件打开对话框 176
4.4.2 文件保存对话框 178
4.4.3 颜色对话框 179
4.4.4 字体对话框 181
4.4.5 查找对话框 183
4.4.6 页面设置对话框 185
4.4.7 打印对话框 186
4.5 小结 187
第5章 Visual C++2010 MFC对话框控件 188
5.1 Visual C++2010 Button控件简介与开发 191
5.2 Visual C++2010 List Box控件简介与开发 193
5.3 Visual C++2010 Com boBox控件简介与开发 195
5.3.1 创建扩展组合框控件 196
5.3.2 在扩展组合框控件中使用图像列表 197
5.3.3 设置各项的图像 197
5.3.4 处理扩展组合框控件中的通知消息 198
5.4 Visual C++2010 List控件简介与开发 198
5.4.1 列表控件和列表视图 199
5.4.2 列表项和图像列表 199
5.4.3 回调项和回调屏蔽 200
5.4.4 创建列表控件 200
5.4.5 创建图像列表 201
5.4.6 向控件添加列(报表视图) 204
5.4.7 向控件添加项 205
5.4.8 在列表控件中滚动、排列、排序和查找 205
5.4.9 在列表控件中实现工作区 205
5.4.10 处理列表控件中的通知消息 206
5.4.11 更改列表控件样式 206
5.4.12 虚拟列表控件 207
5.4.13 列表控件的消息映射 209
5.4.14 列表控件的风格选项及表头设置 210
5.4.15 销毁列表控件 210
5.5 Visual C++2010 Edit控件简介与开发 211
5.6 Visual C++2010 Rich Edit控件简介与开发 213
5.6.1 Rich Edit控件中的字符格式 215
5.6.2 Rich Edit控件中的段落格式 215
5.6.3 Rich Edit控件中的当前选定内容 215
5.6.4 Rich Edit控件中的分词 216
5.6.5 Rich Edit控件中的剪贴板操作 216
5.6.6 Rich Edit控件中的流操作 216
5.6.7 Rich Edit控件中的打印操作 216
5.6.8 无底的Rich Edit控件 217
5.6.9 来自Rich Edit控件的通知 217
5.7 Visual C++2010 Progress控件简介与开发 219
5.7.1 进度控件的样式 219
5.7.2 进度控件的设置 219
5.7.3 操作进度控件 220
5.8 Visual C++2010 Tree控件简介与开发 220
5.8.1 树控件样式 221
5.8.2 树控件父项和子项 221
5.8.3 树控件项位置 222
5.8.4 树控件项标签 222
5.8.5 树控件标签编辑 223
5.8.6 树控件项的状态 223
5.8.7 树控件图像列表 224
5.8.8 树控件项选择 224
5.8.9 树控件拖放操作 224
5.8.10 树控件项信息 225
5.8.11 树控件通知消息 225
5.9 Visual C++2010 DBgrid控件简介与开发 226
5.9.1 示例程序1 226
5.9.2 示例程序2&. 227
5.10 Visual C++2010 Rebar控件简介与开发 228
5.10.1 在Rebar控件中使用图像列表 230
5.10.2 在Rebar控件中使用对话栏 231
5.10.3 处理Rebar控件中的通知消息 231
5.11 Visual C++2010 Timer控件简介与开发 232
5.12 Visual C++2010 Tab控件简介与开发 234
5.12.1 选项卡和选项卡控件属性 235
5.12.2 选项卡控件的使用方法 235
5.12.3 创建选项卡控件的方法 235
5.12.4 处理选项卡控件通知消息 236
5.12.5 CTabCtrl类简介 236
5.13 Visual C++2010 IP控件简介与开发 241
5.14 Visual C++2010 Picture控件简介与开发 241
5.15 Visual C++2010 Slider控件简介与开发 244
5.15.1 滑块控件样式 244
5.15.2 滑块控件成员函数 245
5.15.3 滑块控件通知消息 246
5.16 Visual C++2010 Scroll Bar控件简介与开发 246
5.17 Visual C++2010 Hot Key控件简介与开发 248
5.17.1 使用热键控件 248
5.17.2 设置热键 249
5.18 Visual C++2010 Animation控件简介与开发 249
5.18.1 使用动画控件 249
5.18.2 动画控件发送的通知 250
5.19 Visual C++2010 Spin控件简介与开发 250
5.19.1 数值调节钮的样式 250
5.19.2 数值调节钮成员函数 251
5.20 Visual C++2010 GroupBox控件简介与开发 251
5.21 Visual C++2010 Data Time Picker控件简介与开发 252
5.21.1 创建日期和时间选择器控件 253
5.21.2 访问嵌入的月历控件 253
5.21.3 在日期和时间选择器控件中使用自定义格式字符串 254
5.21.4 在日期和时间选择器控件中使用回调字段 254
5.21.5 处理日期和时间选择器控件中的通知消息 256
5.22 Visual C++2010 Month Canlendar控件简介与开发 256
5.22.1 创建月历控件 257
5.22.2 处理月历控件中的通知消息 257
5.22.3 设置月历控件的日状态 257
5.23 Visual C++2010 Custom控件简介与开发 258
5.23.1 使用MFC方法定制控件必备的几个基本概念 259
5.23.2 定制自定义控件的3种常见方法 260
5.24 Visual C++2010 SysLink控件简介与开发 260
5.25 Visual C++2010 Split Button控件简介与开发 261
5.26 Visual C++2010 Network Address控件简介与开发 262
5.27 Visual C++2010 Check Box控件简介与开发 262
5.28 Visual C++2010 Radio Button控件简介与开发 264
5.28.1 为单选按钮控件分组 264
5.28.2 获得被选中的单选按钮的文本 264
5.29 Visual C++2010 MediaPlayer控件简介与开发 265
5.30 小结 266
第二部分 Visual C++2010下MFC开发 267
第6章 计算机测控系统概述 267
6.1 Visual C++2010 SDI开发简介 267
6.1.1 建立应用程序基本框架 267
6.1.2 处理视图 267
6.1.3 处理文档 271
6.1.4 串行化处理 274
6.1.5 SDI应用程序编程思路 275
6.2 Visual C++2010 MDI开发简介 277
6.2.1 多文档接口 277
6.2.2 生成程序 278
6.2.3 程序类、文件和代码 279
6.2.4 自定义资源 281
6.3 Visual C++2010 View开发 282
6.3.1 生成源文件 283
6.3.2 初始化视图类数据成员 283
6.3.3 加入消息处理功能 285
6.3.4 设计程序资源 290
6.3.5 定制MiniDraw窗口 292
6.3.6 程序清单 293
6.4 Visual C++2010 EditView开发 298
6.4.1 生成MiniEdit程序 299
6.4.2 修改程序菜单 300
6.4.3 编辑加速键 301
6.4.4 程序清单 303
6.5 Visual C++2010 Form View开发 306
6.5.1 自定义FormDemo程序 307
6.5.2 程序清单 314
6.6 Visual C++2010 ScrollView开发 319
6.6.1 加入滚动功能 319
6.6.2 坐标换算 319
6.6.3 限制图形大小 322
6.6.4 改变鼠标光标 325
6.7 Visual C++2010 HtmlEditView开发 328
6.8 Visual C++2010 HtmlView开发 331
6.9 Visual C++2010 ListView开发 335
6.10 Visual C++2010 RichEditView开发 335
6.11 VisualC++2010 TreeView开发 336
6.12 Visual C++2010 Office 2007风格文档视图开发框架 337
6.13 Visual C++2010 Visual Studio 2008风格文档视图开发框架 342
6.14 Visual C++2010 Windows资源管理器风格文档视图开发框架 346
6.15 小结 350
第7章 Visual C++2010 MFC应用程序界面与美化 351
7.1 应用程序窗口风格美化 351
7.1.1 借助ActiveSkin美化窗口 351
7.1.2 修改窗口外观 352
7.2 应用程序窗口图标与背景修改 359
7.2.1 修改窗口图标 359
7.2.2 修改背景 360
7.3 工具栏编程与美化 365
7.3.1 创建工具栏 365
7.3.2 在工具栏中添加、删除按钮 366
7.3.3 从对话框创建工具栏 368
7.4 状态栏编程与美化 370
7.4.1 创建状态栏 370
7.4.2 在状态栏中插入进度条 370
7.5 鼠标光标编程 371
7.5.1 鼠标光标编程步骤 371
7.5.2 鼠标的消息处理机制 373
7.5.3 示例 374
7.6 创建启动界面 376
7.7 创建特效窗口启动应用程序 378
7.8 创建特效窗口关闭应用程序 378
7.9 小结 383
第8章 Visual C++2010 MFC文本与字体 384
8.1 CFont字体类简介 384
8.1.1 CFont字体类成员介绍 384
8.1.2 CFont字体类初始化函数 385
8.1.3 其他成员介绍 390
8.2 创建文本插入符与图片插入符 391
8.2.1 创建文本插入符 391
8.2.2 创建图片插入符 394
8.2.3 创建随鼠标移动的插入符 396
8.3 输出文字与字体格式 397
8.3.1 输出固定文字 397
8.3.2 设定输出字体的格式 398
8.3.3 字符输入 399
8.4 输出彩色文字与变色文字 404
8.4.1 DrawText()函数和字符串资源 404
8.4.2 定时器和变色文字 408
8.5 小结 410
第9章 Visual C++2010 MFC图形图像编程 411
9.1 Windows绘图简介 411
9.1.1 设备描述表 411
9.1.2 绘图属性 412
9.1.3 元文件和路径 412
9.1.4 颜色和调色板 412
9.1.5 图形设备接口函数 413
9.2 Windows屏幕绘图简介 414
9.2.1 窗口客户区 414
9.2.2 映射模式 414
9.2.3 图形刷新 416
9.3 微软GDI绘图简介 416
9.3.1 GDI基础 416
9.3.2 GDI结构 417
9.3.3 GDI函数调用 417
9.3.4 GDI基本图形 418
9.4 GDI笔绘图 419
9.4.1 Cpen类简介 419
9.4.2 使用GDI绘制线条 419
9.4.3 使用CPen类绘制指定的线条 422
9.4.4 绘制连续的线条 424
9.5 GDI画刷绘图 425
9.5.1 CBrush类介绍 426
9.5.2 CBrush类简单画刷的实现 429
9.5.3 CBrush类位图画刷的实现 430
9.5.4 透明画刷的实现 431
9.6 小结 433
第10章 Visual C++2010 MFC动态函数链接库 434
10.1 动态函数链接库简介 434
10.1.1 什么是动态函数链接库 434
10.1.2 动态函数链接库的优点 435
10.1.3 动态函数链接库的起源 436
10.1.4 动态函数链接库的原理 436
10.2 调用动态函数链接库 436
10.2.1 静态链接 436
10.2.2 动态链接 438
10.3 DLL的框架简介 439
10.3.1 DllMain()函数简介 439
10.3.2 DLL的导出函数 439
10.4 创建MFC DLL范例 440
10.4.1 建立MFC DLL工程 440
10.4.2 添加实现代码 442
10.4.3 编译并调用 443
10.5 创建Win32 DLL范例 443
10.5.1 建立Win32工程 443
10.5.2 添加动态链接库代码 444
10.5.3 编译工程 444
10.6 创建资源DLL范例 445
10.6.1 建立MFC Application工程 445
10.6.2 建立中文资源DLL 445
10.6.3 加载资源DLL 446
10.7 Hook技术 446
10.7.1 Hook函数类型 446
10.7.2 使用Hook函数 449
10.7.3 Hook鼠标 449
10.7.4 Hook键盘 450
10.8 小结 452
第11章 Visual C++2010 MFC ActiveX控件 454
11.1 ActiveX控件简介 454
11.2 ActiveX控件测试与注册 455
11.2.1 ActiveX控件的测试 455
11.2.2 ActiveX控件的注册 457
11.3 MFC ActiveX控件向导 458
11.4 ActiveX控件属性开发 458
11.4.1 添加常用属性 459
11.4.2 添加自定义属性 460
11.4.3 高级属性实现 460
11.4.4 访问环境属性 461
11.5 ActiveX控件事件开发 461
11.5.1 添加常用事件 462
11.5.2 添加自定义事件 463
11.6 ActiveX控件方法开发 464
11.6.1 添加常用方法 465
11.6.2 添加自定义方法 465
11.6.3 从方法返回错误代码 466
11.7 完整ActiveX控件范例 467
11.7.1 创建工程 467
11.7.2 Clock控件的实现 469
11.7.3 添加常用属性 470
11.7.4 添加自定义属性 473
11.7.5 添加方法 474
11.7.6 添加常用事件 475
11.7.7 添加自定义事件 476
11.8 调用ActiveX控件 477
11.9 小结 478
第12章 Visual C++2010 MFC文件与注册表操作 479
12.1 文本操作串行化 479
12.1.1 文档类Serialize()函数 479
12.1.2 CArchive对文件进行读写 482
12.1.3 文档操作串行化代码分析 485
12.2 CFile类 492
12.2.1 打开文件操作 493
12.2.2 读写文件操作 494
12.2.3 定位文件操作 496
12.2.4 关闭文件操作 497
12.2.5 异常操作 497
12.2.6 文件管理操作 498
12.3 .ini文件读写操作 500
12.4 注册表读写操作 502
12.4.1 注册表简介 502
12.4.2 注册表API 504
12.4.3 访问并修改注册表 507
12.5 小结 509
第13章 Visual C++2010 MFC数据库开发 510
13.1 数据库基本知识 510
13.2 SQL语言的基础知识 511
13.3 ODBC访问数据库 512
13.3.1 注册ODBC数据库 512
13.3.2 创建一个MFC的ODBC程序 514
13.3.3 程序结构分析 515
13.3.4 在视图上显示数据库查询结果 520
13.3.5 对查询结果排序及设置查询条件 524
13.3.6 动态设置查询条件并更新查询结果 527
13.4 ODBC更新数据库 532
13.5 ODBC访问SQL Server 540
13.6 ADO数据库访问 543
13.6.1 ADO数据库访问概述 543
13.6.2 在Visual C++中使用ADO编程 546
13.7 ADO访问SQL Server数据库 556
13.8 小结 556
第14章 Visual C++2010 MFC多线程程序设计 557
14.1 进程和多线程的概念 557
14.2 线程的创建 558
14.2.1 创建工作者线程 558
14.2.2 创建用户界面线程 559
14.3 线程的终止 560
14.4 设置线程的优先级 562
14.5 暂停及重新启动线程 563
14.6 线程间的通信 571
14.7 线程的同步 572
14.7.1 临界区 572
14.7.2 互斥量 573
14.7.3 事件 573
14.7.4 信号量 574
14.8 小结 579
第15章 Visual C++2010 MFC网络程序设计 580
15.1 计算机网络的基础知识 580
15.1.1 TCP/IP协议模型 580
15.1.2 IP地址 582
15.1.3 端口 582
15.1.4 数据封装 582
15.2 Winsock简介 583
15.3 MFC对Windows Sockets的支持 583
15.3.1 Socket的定义 584
15.3.2 CAsyncSocket类介绍 584
15.3.3 CSocket类介绍 592
15.4 一个基于UDP的聊天室示例 593
15.4.1 MFC对Windows Sockets的初始化 593
15.4.2 服务器端的实现 595
15.4.3 客户端的实现 599
15.5 一个基于TCP的聊天室示例 605
15.5.1 服务器端的实现 606
15.5.2 客户端的实现 609
15.6 小结 612
第16章 Visual C++2010 MFC进程通信 613
16.1 剪贴板通信 613
16.1.1 OpenClipboard()函数 613
16.1.2 CloseClipboard()函数 614
16.1.3 EmptyClipboard()函数 614
16.1.4 SetClipboardData()函数 614
16.1.5 GlobalAlloc()函数 615
16.1.6 GlobalLock()函数 616
16.1.7 GlobalUnLock()函数 616
16.1.8 GetClipboardData()函数 616
16.1.9 一个利用剪贴板在不同进程之间交换数据的示例 616
16.2 邮槽通信 619
16.2.1 CreateMailslot()函数 619
16.2.2 GetMailslotInfo()函数 620
16.2.3 SetMailslotInfo()函数 621
16.2.4 ReadFile()函数 621
16.2.5 GetFileTime()函数和SetFileTime()函数 621
16.2.6 CreateFile()函数 622
16.2.7 WriteFile()函数 623
16.2.8 CloseHandle()函数 623
16.2.9 一个利用邮槽在不同进程间通信的示例 623
16.3 匿名管道通信 628
16.3.1 CreatePipe()函数 628
16.3.2 CreateProcess()函数 629
16.3.3 GetStdHandle()函数 631
16.3.4 ReadFile()和WriteFile()函数 632
16.3.5 一个利用匿名管道在父子进程间通信的示例 632
16.4 命名管道通信 637
16.4.1 CreateNamedPipe()函数 637
16.4.2 ConnectNamedPipe()函数 639
16.4.3 DisconnectNamedPipe()函数 640
16.4.4 WaitNamedPipe()函数 640
16.4.5 利用命名管道通信的基本流程 640
16.4.6 一个利用命名管道在不同进程间通信的示例 641
16.5 共享内存通信 647
16.5.1 CreateFileMapping()函数 647
16.5.2 MapViewOfFile()函数 648
16.5.3 UnmapViewOfFile()函数 649
16.5.4 OpenFileMapping()数 649
16.5.5 利用共享内存通信的基本流程 649
16.5.6 一个利用共享内存在不同进程间通信的示例 650
16.6 小结 655
第三部分 Visual C++2010下MFC与CLR进行开发第17章 Visual C++2010 CLR开发基础 656
17.1 什么是.NET 656
17.2 .NET框架 656
17.3 公共语言运行时(CLR) 657
17.3.1 托管代码 659
17.3.2 代码验证 659
17.3.3 代码访问验证 659
17.3.4 垃圾回收 659
17.3.5 语言的互操作性 660
17.3.6 实时编译(JIT) 660
17.4 通用类型系统(CTS) 661
17.5 通用语言规范(CLS) 663
17.6 程序集 664
17.6.1 元数据 664
17.6.2 程序集版本管理 665
17.6.3 微软中间语言(MSIL) 665
17.6.4 资源 666
17.7 .NET开发应用程序的范畴 666
17.8 .NET框架类库 667
17.9 C++/CLR开发语法简介 668
17.10 小结 670
第18章 Visual C++2010 CLR Windows窗口编程 671
18.1 创建Windows应用程序 671
18.2 类层次结构 677
18.3 Control类 677
18.3.1 大小与位置 678
18.3.2 外观 679
18.3.3 用户交互操作 679
18.3.4 Windows功能 680
18.4 标准Windows控件使用指南 681
18.4.1 Button控件 681
18.4.2 CheckBox控件 681
18.4.3 RadioButton控件 682
18.4.4 ComboBox控件、ListBox控件和CheckedListBox控件 682
18.4.5 DateTimePicker控件 684
18.4.6 ErrorProvider组件 685
18.4.7 HelpProvider组件 686
18.4.8 ImageList组件 686
18.4.9 Label控件 686
18.4.10 ListView控件 687
18.4.11 PictureBox控件 688
18.4.12 ProgressBar控件 689
18.4.13 TextBox控件、RichTextBox控件与MaskedTextBox控件 689
18.4.14 Panel控件 690
18.4.15 FlowLayoutPanel控件和TableLayoutPanel控件 690
18.4.16 SplitContainer控件 691
18.4.17 TabControl控件和TabPage控件 691
18.4.18 ToolStrip控件 692
18.4.19 MenuStrip控件 694
18.4.20 ContextMenuStrip控件 694
18.4.21 ToolStripMenuItem控件 694
18.4.22 ToolStripManager类 695
18.4.23 ToolStripContainer控件 695
18.5 窗体WinForm 695
18.5.1 Form类 695
18.5.2 多文档界面 700
18.5.3 定制控件 700
18.6 小结 707
第19章 Visual C++2010 MFC与.NET交互编程 708
19.1 编写托管扩展应用程序 708
19.2 编写访问.NET的MFC程序 709
19.3 混合模式编程问题 711
19.4 运用.NET类型 713
19.4.1 定义和使用托管类型 713
19.4.2 将非托管对象作为托管类的成员 715
19.4.3 装箱和拆箱 716
19.4.4 指针 717
19.4.5 在非托管代码中使用托管数组 719
19.5 小结 720
第四部分 发布Visual C++2010程序 721
第20章 Visual C++2010应用程序部署 721
20.1 Windows Installer介绍 722
20.2 一个简单的Windows应用程序 723
20.3 使用安装向导快速创建安装包 726
20.4 手动创建安装程序 728
20.5 使用安装编辑器 731
20.5.1 File System(文件系统编辑器) 731
20.5.2 Registry编辑器 732
20.5.3 File Types编辑器 733
20.5.4 User Interface编辑器 734
20.5.5 Custom Actions编辑器 735
20.5.6 Launch Conditions编辑器 736
20.6 小结 736
第五部分 基于Windows 7平台用Visual C++2010开发第21章 Visual C++2010基于Windows 7新特性开发 737
21.1 实现C++兼容开发 737
21.1.1 实现UAC数据重定向 737
21.1.2 实现高DPI 741
21.1.3 实现安装程序检测 742
21.1.4 会话0隔离 743
21.1.5 用户界面特权隔离(UIPI) 746
21.1.6 版本检查 748
21.2 Windows 7系统专题 750
21.2.1 实现超级任务栏 750
21.2.2 实现Shell库 759
21.2.3 实现后台服务 762
21.2.4 开发基于Windows 7的设备与性能应用 763
21.3 开发基于Windows 7的新特性 769
21.3.1 实现多点触摸 769
21.3.2 实现获取传感器与位置 771
21.3.3 实现Windows 7 Ribbon界面开发 774
21.3.4 基于Visual C++2010开发基于Windows 7的语音识别与语音合成 776
21.3.5 基于Visual C++2010与Windows SDK for Windows 7开发Windows 7平台的Tablet PC应用 787
21.3.6 开发Windows 7的安全体验CryptoAPI加密 804