第1章 Visual C++.NET集成开发环境 1
1.1 Microsoft.NET简介 1
1.2 Visual Studio.NET概述 5
1.2.1 Visual Studio.NET概述 6
1.2.2 Visual Studio.NET的安装与设置 6
1.2.3 Visual Studio.NET的特色 8
1.2.4 Visual Studio.NET的启动和退出 9
1.2.5 Visual Studio.NET 2003的新增功能 15
1.3 Visual C++.NET 2003的开发环境 16
1.3.1 Visual C++.NET的新特点 17
1.3.2 Visual C++.NET 2003的功能 18
1.3.3 解决方案和项目 23
1.3.4 托管C++ 23
1.3.5 Visual C++.NET窗口 25
1.4 使用Visual C++.NET编写简单程序 30
习题 36
第2章 C++编程基础 37
2.1 C++基础 37
2.1.1 面向对象的理念 37
2.1.2 对象、属性和方法 38
2.1.3 类与对象 39
2.1.4 构造函数 41
2.1.5 析构函数 42
2.1.6 多态性 42
2.1.7 友员 43
2.1.8 类的静态成员 44
2.1.9 模板 44
2.1.10 C++语言的输入与输出 46
2.2 Windows编程基础 48
2.2.1 Windows简介 48
2.2.3 Windows的基本概念 49
2.2.2 Windows操作系统的技术特点 49
2.2.4 Windows的窗口和布局 50
2.2.5 Windows的类 52
2.2.6 Windows中的面向对象编程 52
2.2.7 过程驱动和事件驱动 54
2.2.8 消息驱动的应用程序 55
2.2.9 Windows的函数 57
2.2.10 Win32 API和SDK 57
2.2.11 Windows应用程序框架 58
2.2.12 Visual C++提供的Windows编程工具 67
2.2.13 32位编程特点 68
2.2.14 Windows网络编程实例 75
2.3 MFC应用基础 79
2.3.1 MFC的概念 79
2.3.2 MFC的结构体系 80
2.3.3 MFC中常用类简介 81
2.3.4 MFC应用程序框架的运行机制 83
习题 87
第3章 菜单、工具栏和状态栏 88
3.1 菜单 88
3.1.1 CMenu菜单类 88
3.1.2 菜单编辑器 90
3.1.3 动态修改菜单 92
3.1.4 菜单消息响应 94
3.1.5 菜单的可用和禁用 95
3.1.6 创建弹出菜单 96
3.1.7 菜单使用实例 97
3.2 工具栏 100
3.2.1 CToolBar工具栏类 101
3.2.2 工具栏编程 103
3.2.3 工具栏资源 105
3.2.4 工具栏使用实例 106
3.3 状态栏 107
3.3.1 CStatusBar状态栏类 107
3.3.2 创建和处理状态栏 109
3.3.3 状态栏使用实例 111
3.4 菜单、工具栏和状态栏使用实例 112
习题 126
第4章 控件 127
4.1 控件概述 127
4.1.1 控件概述 127
4.1.2 创建控件 129
4.1.3 控件通知 131
4.2 常用控件 132
4.2.1 按钮控件 133
4.2.2 编辑框控件 135
4.2.3 列表框控件 138
4.2.4 组合框控件 140
4.2.5 微调按钮控件 142
4.2.6 静态控件 143
4.2.7 滚动条控件 144
4.2.8 滑块控件 145
4.2.9 进度条控件 146
4.2.10 动画控件 146
4.2.11 树形控件 148
4.3 控件使用实例 149
4.3.1 添加控件 149
4.3.2 添加变量 150
4.3.3 添加事件处理 151
4.3.4 编译运行 153
4.3.5 源代码 153
习题 157
5.2 通用对话框类 158
5.1 对话框的概念 158
第5章 对话框 158
5.3 创建对话框 162
5.3.1 创建对话框模板 162
5.3.2 使用MFC添加类向导创建对话框类 166
5.3.3 创建并显示对话框 166
5.3.4 创建控件成员变量 168
5.3.5 初始化对话框 168
5.3.6 处理消息 169
5.3.7 数据交换和验证 170
5.3.8 关闭对话框 170
习题 171
第6章 鼠标和键盘 172
6.1 鼠标 172
6.1.1 鼠标消息 172
6.1.2 捕获鼠标 174
6.1.4 设置鼠标光标形状 175
6.1.3 限制鼠标移动 175
6.1.5 鼠标编程实例 176
6.2 键盘 177
6.2.1 系统键和非系统键 178
6.2.2 扫描码、虚拟键码和ASCII码 178
6.2.3 非系统键消息 178
6.2.4 系统键消息 180
6.2.5 显示按键信息程序 180
习题 183
第7章 文档/视图结构 184
7.1 文档/视图结构 184
7.1.1 文档和视图 184
7.1.2 文档类 185
7.1.3 视图类 185
7.1.4 框架窗口类 186
7.1.5 文档模板 187
7.1.6 文档/视图结构的相互关系 188
7.2 多文档和多视图 189
7.2.1 多文档 189
7.2.2 多视图 190
7.3 单文档编程实例 190
7.4 多文档编程实例 197
7.5 多视图编程实例 203
习题 207
第8章 图形设备接口 208
8.1 图形设备类 208
8.1.1 CClientDC 209
8.1.2 CPaintDC 210
8.1.3 CWindowDC 211
8.2 坐标、映射方式与绘图模式 211
8.2.1 GDI坐标 212
8.2.2 绘图模式 214
8.3 与绘图相关的常用类与结构 215
8.3.1 POINT结构和CPoint类 215
8.3.2 RECT结构和CReet类 216
8.3.3 SIZE结构和CSize类 218
8.3.4 CRgn类 219
8.4 画刷 221
8.4.1 画刷的属性 222
8.4.2 画刷的创建 222
8.5 画笔 223
8.5.1 画笔的属性 224
8.5.2 画笔的创建 224
8.5.3 多支画笔的创建 225
8.6 位图 226
8.6.1 常用的图像格式 227
8.6.3 依赖于设备的位图(DDB) 228
8.6.2 BITMAP结构和CBitmap类 228
8.6.4 与设备无关的位图(DIB) 233
8.7 字体 235
8.8 设备更新与重画 239
习题 240
第9章 文件的存储与打印 241
9.1 文件的存储与读取 241
9.1.1 CFile类 241
9.1.2 序列化与CArchive类 246
9.2 打印 247
9.2.1 建立支持打印的框架 248
9.2.2 CPrintInfo类与打印相关函数 250
9.3 所见即所得的打印程序实例 251
习题 255
10.1 DLL的概念 256
第10章 DLL 256
10.2 DLL的类型 257
10.2.1 非MFC DLL 257
10.2.2 规则DLL 258
10.2.3 扩展DLL 258
10.3 DLL的链接 258
10.3.1 DLL的显式链接 259
10.3.2 DLL的隐式链接 260
10.4 非MFC DLL的创建和使用 260
10.5 MFC DLL的创建和使用 264
习题 270
第11章 多线程 271
11.1 进程与线程 271
11.2 线程的分类 271
11.3 创建和使用线程 272
11.3.1 启动线程 272
11.3.2 初始化线程 274
11.3.3 悬挂和恢复线程 275
11.3.4 休眠线程 275
11.3.5 终止线程 275
11.4 设置线程的优先级 276
11.5 线程之间的通信与同步 277
11.5.1 同步的必要性 277
11.5.2 等待函数 278
11.5.3 同步对象 279
11.6 工作者线程实例 280
11.7 用户界面线程实例 287
习题 292
第12章 数据库编程 293
12.1 关系数据库基本知识 293
12.2 SQL 294
12.3 ODBC 295
12.4 DAO 298
12.5 ADO 300
12.5.1 ADO的特点 300
12.5.2 ADO编程模型 301
12.5.3 ADO接口简介 301
12.5.4 ADO库 302
12.6 数据库编程实例 302
12.6.1 ODBC编程实例 303
12.6.2 ADO编程实例 309
习题 315
第13章 网络编程 316
13.1 创建简单的Web浏览器 316
13.1.1 CHtmlView类简介 316
13.1.2 Web浏览器创建实例 317
13.2 WinSock网络编程 320
13.2.1 WinSock简介 320
13.2.2 套接字简介 321
13.2.3 利用Windows Sockets类进行网络编程 323
13.2.4 WinSock编程实例 325
13.3 WinInet接口 330
13.3.1 MFC WinInet类的特点 330
13.3.2 WinInet中的类 330
13.3.3 利用WinInet创建简单的FTP客户程序 334
习题 339
第14章 异常处理与程序调试 340
14.1 异常与异常处理 340
14.1.1 异常的概念 340
14.1.2 异常处理的类型 340
14.1.3 异常的工作方式 341
14.2 异常捕捉与处理 341
14.2.1 何时使用异常 341
14.2.3 MFC异常 342
14.2.2 C++异常 342
14.3 利用MFC中的调试宏 343
14.3.1 ASSERT宏 343
14.3.2 TRACE宏 344
14.3.3 VERIFY宏 345
14.3.4 ASSERT_VALID宏 345
14.4 利用Visual C++.NET 2003的调试工具 346
14.4.1 建立配置 346
14.4.2 任务列表窗口 347
14.4.3 断点窗口 349
14.4.4 自动窗口 351
14.4.5 局部变量窗口 352
14.4.6 监视窗口 352
14.4.7 快速监视窗口 352
习题 353
附录 习题参考答案 354