第1章 进入Visual C++世界 1
1.1 初识Visual C++ 1
1.2 集成开发环境 1
1.2.1 Visual C++ 主窗口 1
1.2.2 标题栏和工具栏 1
1.2.3 菜单 4
1.3 本章小结 10
第2章 C++编程基础 11
2.1 什么是C++ 11
2.2 C++类及其主要成员 12
2.2.1 定义C++类 12
2.2.2 成员变量 13
2.2.3 构造函数 14
2.2.4 析构函数 14
2.2.5 虚函数 14
2.3 C++的优点 15
2.3.1 封装性 15
2.3.2 继承性 15
2.3.3 多态性 15
2.4 静态变量 16
2.5 运算符重载 17
2.6 C++编程规范 19
2.6.1 命名规范 19
2.6.2 注释规范 20
2.6.3 格式规范 20
2.7 本章小结 21
第3章 第一个Visual C++程序——鼠标追踪 22
3.1 简介程序生成向导(AppWizard) 22
3.1.1 启动AppWizard 22
3.1.2 文件(Files)选项卡 22
3.1.3 工程(Projects)选项卡 23
3.1.4 工作区(Workspaces)选项卡 24
3.1.5 其他文档(Other Documents)选项卡 25
3.2 用AppWizard生成鼠标追踪程序 25
3.2.1 步骤1——创建一个新的Visual C++工程 26
3.2.2 步骤2——确定程序名称和路径 26
3.2.3 步骤3——选择程序类型 26
3.2.4 步骤4——确定数据库来源 27
3.2.5 步骤5——设置所支持的文档类型 28
3.2.6 步骤6——设定程序特征项 29
3.2.7 步骤7——确定工程样式 30
3.2.8 步骤8——调整最终的类信息 31
3.2.9 步骤9——生成程序初始框架 32
3.3 程序的框架说明 32
3.3.1 程序的组成文件 32
3.3.2 程序生成类及其简介 34
3.4 完善鼠标追踪程序 35
3.4.1 编写并保存代码 36
3.4.2 编译并运行程序 37
3.5 本章小结 38
第4章 微软类库(MFC)基础 39
4.1 应用程序框架结构类 39
4.1.1 应用程序及线程类 40
4.1.2 文档类 41
4.1.3 文档模板类 41
4.2 程序窗口类 42
4.2.1 窗口支持类 42
4.2.2 框架窗口类 42
4.2.3 对话框类 43
4.2.4 视图类 43
4.2.5 控件类 44
4.2.6 控制栏类 45
4.2.7 窗体分割类 45
4.3 图形打印类 46
4.3.1 设备输出类 46
4.3.2 图形工具类 46
4.4 文件类 47
4.5 Internet类 48
4.5.1 ISAPI类 48
4.5.2 Windows Sockets类 48
4.5.3 Win32 Internet类 49
4.6 集合类 50
4.6.1 数组类 50
4.6.2 列表类 50
4.6.3 数据对象映像类 51
4.7 异常和调试支持类 52
4.8 本章小结 52
第5章 MFC应用程序框架 54
5.1 最简单的单文档程序--“新年好!” 54
5.1.1 应用程序对象 56
5.1.2 主框架窗口对象 62
5.1.3 文档对象 66
5.1.4 视图对象 69
5.1.5 文档模板 72
5.2 多文档程序框架 73
5.2.1 与单文档程序的框架区别 74
5.2.2 特有类--子框架窗口类 74
5.3 文档/视图结构 76
5.3.1 文档与视图的关系 76
5.3.2 两者相互作用的函数 77
5.3.3 视图类操作文档对象--CView::GetDocument() 77
5.3.4 视图类操作文档对象--CView::OnUpdate() 78
5.3.5 视图类操作文档对象--CView::OnInitialUpdate() 78
5.3.6 文档类操作视对象--CDocument::UpdateAllView() 78
5.3.7 文档类影响视对象--CDocument::DeleteContents() 78
5.4 具有文档/视图结构的程序示例 79
5.4.1 单视图程序 79
5.4.2 双视图程序 80
5.5 本章小结 82
第6章 类的设计魔棒——ClassWizard 83
6.1 初识ClassWizard 83
6.1.1 启动ClassWizard 83
6.1.2 消息映射(Message Maps)选项卡 84
6.1.3 成员变量(Member Variables)选项卡 85
6.1.4 自动控制(Automation)选项卡 86
6.1.5 ActiveX控件事件(ActiveX Events)选项卡 87
6.1.6 类信息(Class Info)选项卡 87
6.2 ClassWizard的常用功能与操作 88
6.2.1 增加新类 90
6.2.2 增减成员变量 91
6.2.3 增减成员函数 92
6.2.4 定位程序代码 92
6.3 本章小结 95
第7章 程序菜单、工具栏和状态栏 96
7.1 设计和使用程序菜单 96
7.1.1 可视化设计菜单 97
7.1.2 响应菜单消息 99
7.1.3 程序控制菜单 100
7.2 设计和使用程序工具栏 102
7.2.1 可视化设计工具栏 103
7.2.2 程序加载工具栏 103
7.2.3 程序控制工具栏 104
7.2.4 改变工具栏风格 105
7.3 设计和使用程序状态栏 106
7.3.1 加载状态栏 106
7.3.2 设置状态栏参数 106
7.4 综合示例--小小时钟 107
7.5 本章小结 116
第8章 输入输出与对话框 117
8.1 响应Windows基本消息 117
8.1.1 键盘输入消息 117
8.1.2 鼠标输入消息 120
8.1.3 时钟触发消息 121
8.2 显示提示信息 124
8.2.1 AfxMessageBox函数 124
8.2.2 CWnd::MessageBox函数 125
8.3 对话框概述 126
8.3.1 对话框的分类 126
8.3.2 为程序增加对话框类 126
8.3.3 为对话框增加控件 127
8.3.4 显示对话框 127
8.3.5 存取对话框数据 128
8.3.6 常用对话框操纵函数 128
8.3.7 对话框示例--登录窗口 129
8.4 通用对话框 131
8.4.1 文件对话框 131
8.4.2 颜色对话框 132
8.4.3 字体对话框 133
8.4.4 打印对话框 134
8.5 本章小结 135
第9章 常用窗体控件 136
9.1 控件初步 136
9.1.1 向对话框添加控件 136
9.1.2 设置控件属性 138
9.1.3 将控件与变量关联 139
9.2 按钮控件及范例 153
9.2.1 下压按钮控件及范例 153
9.2.2 成组框控件简单介绍 161
9.2.3 单选按钮控件及范例 161
9.2.4 复选按钮控件及范例 166
9.3 静态控件及范例 170
9.4 编辑控件及范例 177
9.5 列表控件及范例 184
9.6 组合框控件及范例 196
9.7 滚动控件及范例 207
9.8 本章小结 211
第10章 高级控件 212
10.1 Win32高级控件 212
10.1.1 传统Windows标准控件的通知消息 212
10.1.2 Win32控件的通知消息 213
10.2 数字滚选按钮控件 215
10.3 滑尺控件 218
10.4 进度条控件 220
10.5 树形视图控件 221
10.6 列表视图控件 225
10.7 动画控件 230
10.8 标签控件 233
10.9 范例--高级控件的使用 237
10.10 控件使用技术总结 250
10.10.1 所有的控件都是窗口 250
10.10.2 控件的创建方法 250
10.10.3 访问控件的方法 251
10.10.4 控件及控件对象的删除 252
10.10.5 控件通知消息 252
10.11 本章小结 252
第11章 文件的存取 253
11.1 API函数及其范例 253
11.1.1 文件的打开和关闭 253
11.1.2 文件的同步和异步读写 256
11.1.3 文件加锁 265
11.1.4 文件的查找 266
11.1.5 文件的其他操作 270
11.1.6 串口的操作 271
11.2 CFile类及其范例 280
11.2.1 构造类成员函数 281
11.2.2 存取类成员函数 285
11.2.3 定位类成员函数 285
11.2.4 锁定类成员函数 286
11.2.5 状态操作类成员函数 287
11.2.6 静态成员函数 289
11.3 CStdioFile类及其范例 290
11.3.1 成员变量 290
11.3.2 构造函数 290
11.3.3 存取成员函数 291
11.4 本章小结 292
第12章 文字和图形操作 293
12.1 图形设备接口和设备上下文 293
12.2 映射模式及其范例 295
12.2.1 映射模式简介 295
12.2.2 映射模式单位转换范例 297
12.2.3 自定义的坐标系统及其范例 304
12.3 文本输出及其范例 309
12.3.1 CFont类 309
12.3.2 LOGFONT结构 310
12.3.3 字体和文本函数 312
12.3.4 枚举系统中所有字体以及使用字体对象范例 313
12.3.5 创建特殊的字体效果 321
12.4 输出图形及其范例 330
12.4.1 与绘图相关的简单数据类 330
12.4.2 CPen类及其范例 333
12.4.3 CBrush类及其范例 337
12.4.4 绘制点、线、弧和圆及其范例 341
12.5 本章小结 346
第13章 网络编程 347
13.1 TCP/IP简介 347
13.1.1 IP(Internet Protocol)协议 347
13.1.2 TCP(Transmission Control Protocol)协议 352
13.1.3 UDP(User Datagram Protocol)协议 354
13.2 Windows Sockets简介 354
13.2.1 什么是Windows Sockets 354
13.2.2 Windows Sockets的适用范围 355
13.2.3 Windows Sockets的版本 355
13.2.4 使用Windows Sockets进行网络编程 356
13.2.5 Windows Sockets 1.1库函数概览 363
13.2.6 Windows Sockets 2的扩展特性 367
13.3 Windows Sockets类 378
13.3.1 CAsyncSocket类和CSocket类 378
13.3.2 范例——利用CSocket进行面向连接的通信 381
13.4 本章小结 386
第14章 多线程技术 387
14.1 Windows多线程机制 387
14.1.1 线程的基础知识 387
14.1.2 何时创建线程 388
14.1.3 何时不能创建线程 389
14.1.4 编写一个线程函数 390
14.1.5 线程的创建 390
14.1.6 线程的终止 395
14.1.7 暂停和恢复线程的运行 397
14.1.8 切换到另一个线程 398
14.1.9 线程的运行时间 399
14.1.10 线程的优先级 400
14.2 线程间通信 401
14.2.1 使用全局变量通信 401
14.2.2 使用用户自定义消息通信 403
14.2.3 使用Event对象通信 406
14.3 线程同步 410
14.3.1 使用临界区(Critical Section) 410
14.3.2 使用互斥对象(Mutex) 416
14.3.3 使用信号量(Semaphore) 417
14.4 工作者线程与用户界面线程 421
14.5 本章小结 422