前言 1
第1章 NET和受管扩展 1
1.1 什么是Microsoft.NET 1
1.1.1 NET的核心组件 1
1.1.2 NET的重大意义 1
1.1.3 Web服务崭露头角 2
1.1.4 NET体验 3
1.2 在VC++.NET中进行NET编程 3
1.2.1 COM与软件可复用性 3
1.2.2 什么是NET框架 4
1.2.3 NET框架与COM及COM+的关系 5
1.3.1 什么时候用受管代码编程 6
1.3 受管扩展:在VC++中进行NET框架程序开发 6
1.3.2 添加C++受管扩展支持 7
1.3.3 受管类型介绍 8
1.3.4 受管数组 14
1.3.5 受管字符串 17
1.3.6 委派 18
1.3.7 全局属性 (Global Attributes) 19
1.3.8 受管类型和MFC 20
1.3.9 C++受管扩展开发实例 21
1.4 本章技巧小结 31
第2章 Windows程序基本概念 35
2.1 消息机制 35
2.2 程序的入口点WinMain 36
2.4 窗口函数 37
2.3 消息循环 37
2.5 消息映像 (Message Map)的雏形 38
2.6 Windows程序的创建与销毁 40
2.7 闲置时间的处理:OnIdle 41
第3章 对话框与常用控件 43
3.1 MFC与对话框 43
3.2 实现非模式对话框 44
3.3 对话框及常用控件的用法 45
3.3.1 用于Windows常用控件的通知 45
3.3.2 Button控件及示例 47
3.3.3 Edit控件及示例 63
3.4.1 CHeadCtrl 76
3.4 其他控件简介与应用技巧 76
3.4.2 CImageList 78
3.4.3 CList 81
3.4.4 CProgress 83
3.4.5 CSlider 85
3.4.6 CSpin 87
3.4.7 CTree 89
3.4.8 CTab 92
3.5 DDX/DDV技术 95
3.5.1 数据交换(DDX)函数 95
3.5.2 数据有效性(DDV)函数 97
3.5.3 创建定制的有效性函数 98
3.6 本章技巧小结 99
4.1 菜单 105
第4章 文档与视图结构 105
4.1.1 菜单命令的处理 106
4.1.2 增加上下文相关菜单 108
4.1.3 创建和访问菜单对象 110
4.2 工具条和状态条 114
4.2.1 定制自己的工具条 114
4.2.2 定制状态条 128
4.3 单文档应用程序(SDI) 134
4.3.1 Windows应用程序对象 134
4.3.2 SDI文档模板 135
4.3.3 使用文档和视图 139
4.4 多文档应用程序(MDI) 166
4.4.1 MDI应用程序的类 167
4.4.2 MDI文档模板 168
4.4.3 开发MDI应用程序 171
4.5 创建多视图 174
4.6 本章技巧小结 176
第5章 设备环境、矢量图、位图和字体 191
5.1 设备环境 191
5.2 图形设备接口 191
5.3 MFC设备环境类 192
5.3.1 基类CDC 192
5.3.2 CPaintDC 195
5.3.3 CClientDC 196
5.3.4 CWindowDC 196
5.4.1 映射模式 197
5.4 GDI坐标 197
5.4.2 坐标转换 199
5.5 GDI图形对象 199
5.5.1 画笔:CPen类 200
5.5.2 画刷:Cbrush类 202
5.5.3 字体:CFont类 203
5.5.4 位图:CBitmap类 203
5.5.5 调色板:CPalette类 203
5.6 字体与文本 204
5.6.1 字体特征 204
5.6.2 显示简单的文本 204
5.6.3 TEXTMETRIC结构 206
5.6.4 LOGFONT结构 208
5.6.5 创建字体 210
5.7 矢量图形 212
5.7.1 绘图模式 212
5.7.2 点 213
5.7.3 直线 213
5.7.4 折线 215
5.7.5 矩形 215
5.7.6 区域 218
5.7.7 多边形 218
5.7.8 椭圆 218
5.7.9 贝塞尔曲线 218
5.8 位图 219
5.8.1 两种位图 219
5.8.2 DDB 220
5.8.3 DIB 222
5.9 综合示例:画板 223
5.10 本章技巧小结 268
第6章 多任务编程 281
6.1 使用线程 281
6.1.1 创建Threads程序 282
6.1.2 启动新线程 284
6.1.3 编写新线程的线程过程 285
6.1.4 从线程返回结果 287
6.1.5 通知程序线程已经结束 287
6.1.6 建立新Windows消息 288
6.1.7 报告线程结果 289
6.2.1 使用事件协调线程 296
6.2 协调多线程 296
6.2.2 创建DoubleThreads程序 298
6.2.3 启动线程 299
6.2.4 设置和重置事件 300
6.2.5 编写线程过程 301
6.2.6 编写MinThread进程 302
6.2.7 处理Windows消息 303
6.3 本章技巧小结 311
第7章 OLE与ActiveX技术 317
7.1 OLE与Active的有关概念 317
7.1.1 OLE文档 317
7.1.2 链接与嵌入 317
7.1.6 活动文档 318
7.1.5 自动化(Automation) 318
7.1.4 就地激活(可视编辑) 318
7.1.3 OLE容器与OLE服务器 318
7.1.7 ActiveX控件 319
7.2 OLE技术应用 319
7.2.1 OLE文档服务程序 319
7.2.2 OLE容器 357
7.2.3 活动文档服务程序 397
7.2.4 自动化 400
7.2.5 自动化程序实例 401
7.3 ActiveX控件 445
7.3.1 ActiveX简介 445
7.3.2 使用ActiveX控件 446
7.3.3 创建ActiveX控件 446
7.3.4 用MFC创建ActiveX控件 447
7.4 本章技巧小节 454
第8章 32位内存处理 460
8.1 内存概述 460
8.2 功能强大的内存函数 461
8.3 使用虚拟内存 463
8.3.1 分配内存 463
8.3.2 提交内存 464
8.3.3 释放内存 464
8.4 扫描所有内存 465
8.5 内存映射文件 474
8.5.1 获得需要传递的数据 474
8.5.2 编写内存映射文件 475
8.5.3 创建内存文件视图 476
8.5.4 读内存映射文件 477
8.6 本章技巧小结 485
第9章 数据库编程 489
9.2 在Visual C++中使用ADO 489
9.2.1 引入ADO库文件 489
9.2.2 初始化OLE/COM库环境 490
9.2.3 ADO接口简介 490
9.2.4 创建连接 491
9.2.5 执行SQL命令并取得结果记录集 493
9.2.6 记录集的遍历、更新 497
9.2.7 关闭记录集与连接 498
9.2.8 绑定 498
9.1 ADO概述 498
9.2.9 事务处理 504
9.3 ADO事件 505
9.3.1 ADO事件概述 505
9.3.2 ADO事件类型及其参数 506
9.3.3 事件处理程序如何共同工作 508
9.3.4 Visual C++ADO事件实例 510
9.3.5 ADO事件小结 512
9.4 应用实例剖析 512
9.4.1 实例一:人事管理数据库 512
9.4.2 实例二:应用ActiveX控件开发应用程序 527
9.4.3 实例三:存储二进制大对象 532
9.5 本章技巧小节 554
10.1.1 分层 557
第10章 Iternet编程 557
10.1 Iternet基础 557
10.1.2 TCP/IP 558
10.1.3 HTTP基础 564
10.1.4 FTP基础 566
10.1.5 测试内部网--Ping程序 566
10.2 CSocket程序设计 567
10.2.1 Winsock和MFC 567
10.2.2 建立联网的应用程序实例 582
10.2.3 两个利用WinSock进行通信的例子 591
10.3 本章技巧小结 603
第11章 在Visual C++7.0中编写C#程序 606
11.1 C#简介 606
11.2.1 NGWS Runtime 609
11.2 NGWA runtime技术基础 609
11.2.2 中间语言和元数据 610
11.2.3 即时编译器 (JITters) 611
11.3 虚拟对象系统(VOS) 613
11.3.1 VOS类型系统 613
11.3.2 元数据 614
11.3.3 通用语言规范 614
11.3.4 虚拟执行系统(VES) 617
11.4 C#实例 617
11.4.1 实例一:Hello World 618
11.4.2 实例二:使用Windows窗口的Hello World 619
11.5 本章技巧小结 621