第一章 编写第一个Visual C++程序 1
1.1 HELLO.EXE程序 1
1.2 Hello.EXE程序的可视化设计 10
1.3 为Hello.EXE程序编写代码 17
1.4 定制Hello.EXE程序的图标 23
1.5 打开已有的工程 24
1.6 使用属性表(Properties Table) 25
第二章 VC程序中的基本元素 27
2.1 控制、属性、事件 27
2.1.1 使用控制的例程 27
2.1.2 创建工程 29
2.1.3 可视化设计 31
2.1.4 在编辑框及检查框中引入变量 34
2.1.5 初始化对话框 35
2.1.6 程序的退出 37
2.1.7 程序中的文本显示 38
2.1.8 设置检查框 39
2.1.9 改动编辑框的内容 41
2.2 OLE控制与部件库 45
2.2.1 OLE控制的概念及例程 45
2.2.2 创建工程 46
2.2.3 注册Grid OLE控制 47
2.2.4 Table程序的可视化设计 49
2.2.5 Grid控制中引入变量 53
2.2.6 初始化Grid控制 54
2.2.7 在按钮事件中加入控制代码 56
2.2.8 利用部件库增加OLE控制 59
第三章 菜单 61
3.1 程序预览 61
3.2 程序设计 62
第四章 工具条和状态条 73
4.1 可视化设计 73
4.1.1 创建项目文件 73
4.1.2 功能预览 74
4.1.3 添加画圆工具 78
4.2 详细程序设计 82
4.2.1 设计程序Shp的选单 82
4.2.2 将ID与新工具连接 82
4.2.3 设计Circle选单 83
4.2.4 声明视图类的数据成员 84
4.2.5 声明文档类的数据成员 84
4.2.6 设计Circle选单项的UPDAFE_COMMAND_UI消息 85
4.2.7 设计Rectangle选单的UPDATE_COMMAND_UI消息。 86
4.2.8 初始化数据成员m_SelectedShapeOnToolbar 86
4.2.9 往Circle和Rectangle选单项中添加代码。 87
4.2.10 设计View类的WM_LBUTTONDOWN事件 88
4.2.11 绘制圆和矩形 89
4.2.12 初始文档类的数据成员 89
4.2.13 初始化视图类的数据成员 90
4.2.14 设置文档修改标志 91
4.2.15 向文件中写入或读出数据 92
第五章 对话框 94
5.1 程序预览 94
5.2 程序设计 95
5.3 用户自定义对话框 101
第六章 鼠标和键盘 109
6.1 鼠标程序 109
6.2 程序设计 109
6.3 程序设计 110
6.4 键盘程序 115
第七章 绘制图形 119
7.1 Graph(图形)程序 119
7.1.1 创建Graph程序的工程 120
7.1.2 Graph Program的可视化设计 120
7.1.3 为Exit按钮的BN_CLICKED事件加上代码 121
7.1.4 使用定时器(timer) 122
7.1.5 WM_PAINT事件 125
7.1.6 IDD_CUSTOM_DIALOG对话框的可视化设计 131
7.1.7 修改Draw Graphics按钮的BN_CLICKED事件的代码 134
7.1.8 初始化单选按钮 135
7.1.9 给CGraphDlg类添加成员变量并初始化 136
7.1.10 给定时器事件附上代码 138
7.1.11 修改与WM_PAINT相连的代码 139
7.1.12 修改定时器的安装设置 141
7.2 使用WinG库来避免闪烁 142
7.3 使用不同的颜色来画圆 143
第八章 文本显示 144
8.1 MyFnt程序 144
8.2 创建MyFnt程序的工程 145
8.3 MyFnt程序的可视设计。 145
8.3.1 添加一个变量到编辑盒 146
8.3.2 添加代码到Exit按钮的BN_CLICKED事件。 146
8.3.3 添加代码到编辑盒的EN_CHANGE事件 147
8.4 WM_PAINT事件的代码: 147
8.5 显示文本。 148
8.6 在运行过程中时改变字体 150
8.7 添加一个变量到无线按钮 151
8.7.1 无线按钮的初始化 152
8.7.2 用Size Radio钮改变字体 153
8.8 显示带有阴影的文本 155
8.8.1 添加一个阴影检查框 156
8.8.2 连接代码到阴影检查框 156
8.8.3 在透明背景下显示文本 159
第九章 位图 163
9.1 将位图嵌入EXE文件中。 163
9.1.1 MyBMP程序。 163
9.1.2 创建MyBMP程序的项目 163
9.1.3 MyBMP主窗口的设计 164
9.1.4 菜单设计 164
9.1.5 将菜单移到对话框并连接相应代码 165
9.1.6 显示About Dialog框 166
9.1.7 在用户项目中插入位图 166
9.1.8 变量m_hlnstance 168
9.1.9 显示位图 169
9.1.10 扩大位图 171
9.1.11 在CMyBMPDlg类中添加两个数据成员 172
9.1.12 提取窗口的宽度和高度 172
9.1.13 改变位图大小 173
9.2 动态装入位图 174
9.2.1 简介 174
9.2.2 创建项目文件 176
9.2.3 利用可视化工具设计主窗口 176
9.2.4 菜单设计 177
9.2.5 装入位图 178
9.2.6 Open菜单 178
9.2.7 设计函数DibOpenFile() 180
9.2.8 显示位图 184
9.2.9 调整显示窗口 187
9.2.10 动态装入和显示位图 189
第十章 单文档界面与多文档界面 193
10.1 单文档界面程序 193
10.1.1 CIRCLE例程 193
10.1.2 创建工程 194
10.1.3 文档(Document) 196
10.1.4 视图View类的数据成员 197
10.1.5 初始化文档类的数据成员 198
10.1.6 初始化视图类的数据成员 198
10.1.7 画圆 199
10.1.8 屏幕的任意位置画圆 200
10.1.9 文档的存储和装入 202
10.1.10 改进程序Circle 205
10.2 多文档界面 208
10.2.1 概述 208
10.2.2 MCIRCLE.EXE例程 208
10.2.3 创建MCIRLE程序的工程 211
10.2.4 文档(DOCUMENT)类的数据成员 213
10.2.5 视图(VIEW)类的数据成员 214
10.2.6 显示圆环 215
10.2.7 MCircle程序的MDI特色 217
10.2.8 在任意位置画圆 219
10.2.9 文档的存贮和调入 220
10.2.10 同一文档的多重显示 224
10.2.11 改进MCircle程序 227
第十一章 多任务管理 231
11.1 Taks例程简介 231
11.2 创建Tasks例程的工程 231
11.3 定制Tasks例程的菜单 233
11.4 Tasks程序的可视化设计 234
11.5 Tasks例程的初始化 236
11.6 执行后台任务 237
第十二章 文件操作 241
12.1 档案(CAriche)类 241
12.2 Arch例程 241
12.3 创建工程及可视化设计 242
12.4 Arch程序中的文件操作 244
第十三章 库文件 247
13.1 软件模块 247
13.2 创建项目文件 247
13.3 详细设计 248
13.3.1 生成Circle.cpp和Circle.h文件。 248
13.3.2 定义CCircle类。 249
13.3.3 文件Circle.cpp 249
13.3.4 建立库文件Circle.LIB和测试程序Test.EXE。 250
13.3.5 各控件的详细设计 252
第十四章 动态链接库 256
14.1 何为DLL? 256
14.2 生成DLL 256
14.2.1 创建MyDLL.DLL项目 256
14.2.2 DLL的头代码 256
14.2.3 测试程序Test2。 259
第十五章 创建用户OLE控制 263
15.1 创建MyClock.ocx控制的项目 263
15.2 检测MyClock控制。 264
15.3 在MyClock控制中显示文本 268
15.4 在MyClock控制中显示当前时间 270
15.5 连续显示当前时间。 271
15.6 使用BackColor和ForeColor特性 277
15.7 设置MyClock控制的初始大小 279
15.8 添加用户特性。 279
15.9 初始化UpdateInterval特性 281
15.9.1 初始化UpdateInterval特性 281
15.9.2 使用UpdateInterval特性: 282
15.9.3 UpdateInterval特性值的合法性 283
15.10 特性页 284
15.11 添加栈事件 289
15.12 添加用户事件。 291
15.13 添加方法 295
15.13.1 AboutBox()方法 295
15.13.2 添加栈方法 296
15.13.3 添加用户方法 297
16.4 JukeW程序的可视化设计 304
16.5 引入变量并针对事件编程 307
第十七章 游戏与三维虚拟现实 314
17.1 虚拟现实技术 314
17.2 3 D Floor OLE控制 314
17.3 VR程序 315
17.4 注册OLE控制 319
17.5 可视化设计 320
17.6 VR程序中的Floor文件 321
17.7 编制VR程序中的代码 323
问题与练习答案 340