目录 1
第1章 编写第一个Visual C++程序 1
1.1 HelloWin.exe程序 1
1.2 创建程序的工程 2
1.3 编译和连接 10
1.4 运行和结束程序 11
1.5 HelloWin.exe程序的可视化设计 12
1.5.1 使用Resource View设计Hellowin.exe 13
1.5.2 观察可视化设计的结果 21
1.6 编写程序代码 21
1.6.1 为“打印”按钮编写代码 22
1.6.2为“退出”按钮编写代码 27
1.7 定制程序的图标 30
1.8 打开已有的工程 32
1.9 使用属性表 33
问题与练习 34
第2章 编辑框和复选框 35
2.1 Test.exe程序 35
2.2 创建工程 38
2.3 可视化设计Test程序 40
2.3.1设计窗口 40
2.3.2 使用属性表 42
2.3.2 检验设计结果 43
2.4 为编辑框及复选框引入变量 44
2.5 编写程序代码 46
2.5.1 编写初始化对话框控件的代码 46
2.5.2 为“退出”按钮的BN_CLICKED 48
事件编写代码 48
2.5.3 为“测试”按钮的BN_CLICKED 51
事件编写代码 51
2.5.4 为“清除”按钮的BN_CLICKED 52
事件编写代码 52
2.5.5 为“显示编辑框”复选框的BN_CLICKED事件编写代码 53
2.5.6 为“激活编辑框”复选框的BN_CLICKED事件编写代码 56
2.5.7 为编辑框的EN-CHANGE 58
事件编写代码 58
问题与练习 62
第3章 使用Active X控件 65
3.1 ActiveX控件的概念 65
3.2 MyCal.exe例程 66
3.3 创建工程 67
3.3.1 创建工程 67
3.3.2 拷贝 CalendarActiveX控件 68
3.3.3 注册Calendar ActiveX控件 68
3.4 可视化设计主窗口 71
3.5 为Calendar控件引入变量 76
3.6 初始化Calendar控件 77
3.7 为“退出”按钮的BN_CLICKED事件编写代码 79
3.8 为“今天”按钮的BN CLICKED事件编写代码 80
问题与练习 81
第4章 菜单 83
4.1 Speed.exe程序 83
4.2 创建工程 85
4.3 创建菜单 86
4.3.1 设计菜单 86
4 3 2 把菜单与类关联 91
4.4 可视化设计主窗口 93
4.4.1 设计主窗口 93
4.4.2 引用菜单 93
4.5 为编辑框引入变量 95
4.6 编写程序代码 96
4.6.1 为编辑框的EN_CHANGE事件编写代码… 96
4.6.2 为File菜单的Current Speed菜单项 97
编写代码 97
4.6 3 为File菜单的Exit菜单项编写代码 99
4.6.4 为Help菜单的About菜单项编写代码 100
问题与练习 101
第5章 鼠标 103
5.1 Draw.exe程序 103
5.2 创建工程 104
5.3 可视化设计主窗口 105
5.4 编写程序代码 105
5.4.1 为“Exit”按钮的BN_CLICKED 105
事件编写代码 105
5.4.2 为对话框的WM_MOUSEMOVE 107
事件编写代码 107
5.5 改进Draw.exe程序 110
5.6 修改Draw exe程序 112
问题与练习 114
第6章 键盘 117
6.1 MyKey.exe程序 117
6.2 创建工程 117
6.3 可视化设计主窗口 119
6.4 处理键盘事件 119
问题与练习 122
第7章 对话框(一)——消息框 123
7.1 对话框简介 123
7.2 MyMsg.exe程序 124
7.3 创建工程 124
7.5 为编辑框引入变量 125
7.4 可视化设计主窗口 125
7.6 编写程序代码 127
7.6.1 为“Exit”按钮编写代码 127
7.6.2 为“OK and Cancel”按钮的BN_CLICKED事件编写代码 128
7.6.3 为“Yes,No and Cancel”按钮的 131
BN_CLICKED事件编写代码 131
7.6.4 为Retry and Cancel”按钮的BN_CLICKED事件编写代码 133
7.6.5 为Yes and No”按钮的BN_CLICKED 135
事件编写代码 135
问题与练习 136
第8章 对话框(二)——用户自定义对话框 137
8.1 MyCusexe程序 137
8.2 创建工程 138
8.3 可视化设计程序 139
8.3.1 设计主窗口 139
8.3.2 设计用户自定义对话框 139
8.3.3 为用户自定义对话框创建一个类 141
8.3.4 为编辑框引入变量 143
编写代码 145
8.4.2 创建CCustDlg类的对象 145
8.4 编写程序代码 145
8.4.1 为“Exit”按钮的BN_CLICKED事件 145
8.4.3 为“Get Data”按钮的BN_CLICKED事件编写代码 147
8.4.4 为“Displysply Results”按钮的BN_CLICKED事件编写代码 148
问题与练习 149
第9章 文本 151
9.1 MyFont.exe程序 151
9.2 创建工程 152
9.3 可视化设计程序 154
9.3.1 设计主窗口 154
9.4.1 为“Exit”按钮的BN_CLICKED事件 155
编写代码 155
9.4 编写程序代码 155
9.3.2 为编辑框引入变量 155
9.4.2 为编辑框的EN_CHANGE事件编写代码 156
9.4.3 为WM_PAINT事件编写代码 157
9.5 显示文本 158
9.6 在运行过程中改变字体 161
9.7 显示带有阴影的文本 168
9.7.1 添加一个检查框 170
9.7.2 为Shadow复选框引入一个变量 170
9.7.3 为Shadow复选框编写代码 171
9.8 使用其他字体 176
问题与练习 177
10.1 Graph.exe程序 179
第10章 绘制图形 179
10.2 创建工程 180
10.3 设计主窗口 182
10.3.1 可视化设计主窗口 182
10.3.2 为“Exit”按钮的BN_CLICKED事件 182
编写代码 182
10.4 定时器(timer) 182
10.4.1 安装定时器 182
10.4.2 清除定时器 186
10.4.3 测试定时器………………………………(1?)10.4.4 删除测试代码 188
10.5 WM_PAINT事件 188
10.6 可视化设计对话框 197
10.7 编写程序代码 201
10.7.1 修改“Draw Graphics”按钮的 201
BN_CLICKED事件的代码 201
10.7.2 初始化单选按钮 202
10.7.3 给CGraphDlg类添加成员变量并初始化 204
10.7.4 给定时器事件编写代码 206
10.7.5 修改与WM_PAINT事件相连的代码 208
10.7.6 修改定时器的安装设置 211
10.7.7 使用不同的颜色来画圆 212
问题与练习 213
11.2 创建工程 215
第11章 位图 215
11.1 MyBMP.exe例程 215
11.3 可视化设计主窗口 217
11.4 可视化设计菜单 217
11.5 插入图片到工程 221
11.6 显示位图 222
11.7 放大位图 226
11.8 在CMyBMPDlg类中添加两个数据成员 228
11.9 改变位图大小 230
问题与练习 232
12.1 下载BMP ActiveX控件 233
第12章 动态装入位图 233
12.2 MyPic.exe程序 234
12.3 创建工程 235
12.4 可视化设计主窗口 236
12.5 可视化设计菜单 240
12.6 为BMP ActiveX控件引入变量 245
12.7 初始化BMP ActiveX控件 246
12.8 响应WM_SIZE事件 249
12.9 为Open BMP菜单项编写代码 251
12.10 动态装入位图 253
12.11 改变窗口的标题 256
问题与练习 259
13.1 CArchive(档案)类 261
第13章 文件操作 261
13.2 Arch exe例程 262
13.3 创建工程 263
13.4 可视化设计程序 264
13.4.1 设计主窗口 264
13.5.1 为“Save to File c:Iry TRY”按钮 266
编写代码 266
13.5 编写程序代码 266
13.4.2 为编辑框引入变量 266
13.5.2 为“Load to File c:Iry TRY”按钮 268
编写代码 268
问题与练习 269
第14章 单文档界面(SDI) 271
14.1 单文档界面程序 271
14.2 Circle.exe例程 272
14.3 创建工程 274
14.5 声明视图类的数据成员 279
14.6 初始化文档类的数据成员 280
14.7 初始化视图类的数据成员 281
14.8 画圆 282
14.9 在窗口的任意位置画圆 283
14.10 文档的存储和装入 286
14.11 改进程序 290
问题与练习 294
第15章 工具条和状态条 295
15.1 Shp.exe程序 295
15.2 创建工程 295
14.4 声明文档类的数据成员 297
15.3 预装功能 297
15.3.1 缺省工具条 297
15.3.2 缺省状态条 298
15.3.3 “查看”菜单 298
15.5 状态条上的状态字 301
15.4 用不同格式显示工具条 301
15.6 向工具条中添加工具 303
15.6.1 添加“画圆”(Circle)工具 303
15.6.2 添加“矩形”(Rectangle)工具 307
15.7 创建Shp程序的菜单 307
15.7.1 设计菜单 309
15.7.2 给新工具赋ID 309
15.7.3 查看结果 310
15.8编写代码 310
15.8.1 ?“画圆”菜单编写代码 310
15.8.2 声明视图类的数据成员 311
15.8.3 声明文档类的数据成员 313
COMMAND_UI事件编写代码 314
15.8.4 ?“画圆”菜单项的UPDATE 314
15.8.5 ?“矩形”菜单项的UPDATE 316
COMMAND_UI事件编写代码 316
15.8.6 初始化数据成员 317
?SelectedShapeOnToolbar 317
15.8.7 ?“画圆”和“矩形”菜单项添加代码 318
15.8.8 ?视图类的WM_LBUTTONDOWN 321
事件编写代码 321
15.8.9 绘制圆和矩形 322
15.8.10 初始化文档类的数据成员 324
15.8.11 初始化视图类的数据成员 325
15.8.12 设置文档修改标志 327
15.8.13 向文件中写入或读出数据 329
问题与练习 331
第16章 多任务管理 333
16.1 Tasks.exe程序 333
16.2 创建工程 334
16.3 定制程序的菜单 336
16.4 可视化设计程序 338
16.4.1 可视化设计程序的主窗口 338
16 4.2 ?IDD_TASKS_FORM中的控件 340
引入变量 340
16.5 程序的初始化 340
16.6 执行后台任务 342
问题与练习 347
第17章 多文档界面(MDI) 349
17.1 多文档界面程序 349
17 2 MCirc e.exe例程 350
17.3 创建工程 353
17.4 声明文档类的数据成员 356
17.5 声明视图类的数据成员 357
17.6 初始化文档类的数据成员 359
17.7 初始化视图类的数据成员 360
17.8 画圆 361
17.9 MCircle程序的MDI特色 362
17.10 在窗口的任意位置画圆 366
17.11 文档的存储和装入 368
17.12 同一文档的多重显示 373
17.12.1 何为多重显示 373
17.12.2 实现同一文档的多重显示 374
17.12.3 视图类的OnUpdate()成员函数 376
17.13 改进程序 378
问题与练习 382
第18章 库文件 383
18.1 软件模块 383
18.2.1 创建库文件的工程 384
18.2 创建库文件 384
18.2 2 创建Circle. cpp和Circle.h文件 385
18.2.3 定义CCircle类 387
18.2.4 修改Circle.cpp文件 389
18.2.5 生成库文件Circle.LIB 391
18.3 使用库文件 391
18.3.1 创建测试程序的工程 391
18.3.2 可视化设计主窗口 392
18.3.3 为“My Circle”按钮加入程序代码 392
18.3.4 为“His Circle”按钮加入程序代码 394
18 3.5 为“Her Circle”按钮加入程序代码 395
18.3.6 为“Our Circle”按钮加入程序代码 396
18.3.7 引用库文件 397
18.3.8 查看结果 398
18.4 发售库文件 398
问题与练习 399
第19章 动态链接库(DLL) 401
19.1 何为DLL 401
19.2 创建DLL 402
19.2.1 创建MyDLL.DLL的工程 402
19.2.2 编写DLL的代码 403
19.3.1 定制MyDLL.cpp文件 405
19.3 修改DLL的代码 405
19.3.2 定制MyDLL def文件 409
19.4 使用MyDLL.DLL 410
19.4.1 创建工程 410
19.4.2 可视化设计主窗口 411
19.4.3 定义全局变量 412
19.4.4 装载DLL 413
19.4.5 使用DLL 415
问题与练习 418
20.1 创建MyClock.OCX控件的工程 419
20.1.1 创建工程 419
第20章 创建用户ActiveX控件 419
20.1.2 测试MyClock控件 421
20.1.3 定制MyClock控件的图标 424
20.2 在MyClock控件中显示文本 426
20.3 在MyClock控件中显示当前时间 429
20.3.1 显示当前时间 429
20.3.2 连续显示当前时间 432
20.4 栈属性 435
20.4.1 栈属性简介 435
20.4.2 为控件添加Backcolor和ForeColor栈属性 436
20.4.3 使用BackColor和ForeColor栈属性 441
20.5 设置MyClock控件的初始大小 444
20.6.1 添加UpdateInterval属性 446
20.6 用户属性 446
20.6.2 初始化UpdateInterval属性 448
20.6.3 使用UpdateInterval属性 450
20.6.4 UpdateInterval属性值的合法性 452
20.7 使用属性页 454
20.7.1 查看属性页 454
20.7.2 添加属性页 455
20.7.3 定制General属性页 458
20.8 栈事件 461
20.9.1 添加NewMinute用户事件 465
20.9 用户事件 465
20.9.2 触发NewMinute事件 467
20.10 添加方法 470
20.10.1 AboutBox()方法 470
20.10.2 添加栈方法 471
20.10.3 添加用户方法 474
问题与练习 477
第21章 设计浏览器 479
21.1 MyBrowser.exe程序 479
21.2 创建工程 481
21.3 可视化设计主窗口 482
21.4.1 为“Microsoft Web浏览器”控件引入变量 485
21.4 添加变量 485
21.4.2 为编辑框引入变量 487
21.5 编写程序代码 487
问题与练习 489
第22章 声音和动画 491
22.1 下载BMP ActiveX控件 491
22.2 MyAnima.exe程序 492
22.3 创建工程 492
22.4 可视化设计主窗口 496
22.5 可视化设计菜单 499
22.6 为BMP和Sound ActiveX控件引入变量 504
22.8 初始化MyAnima.exe程序 505
22.7 拷贝多媒体文件到MyAnima.exe程序 505
所在的目录 505
22.9 响应WM_SIZE事件 507
22.10 产生动画效果 509
22.10.1 安装定时器 509
22.10.2 动画处理 511
22.11 声音 512
22.11.1 为Sound菜单的Basketball菜单项 512
编写代码 512
22.11.2 播放篮球的触地声 513
22.11.3 为Sound菜单的Music菜单项编写代码 515
问题与练习 517