第1章 概述 1
1.1 静态链接与动态链接库 1
1.1.1 静态链接 1
1.1.2 动态链接库 2
1.1.3 动态链接库与API函数 3
1.2 Visual Basic与Windows 5
1.2.1 Visual Basic和Windows的基本特性 5
1.2.2 Windows窗口 7
1.3 Win32 API简介 8
1.3.1 窗口管理函数 8
1.3.2 图形设备接口 10
1.3.3 系统服务 11
1.3.4 其他函数 13
1.4 在Visual Basic中使用动态链接库 15
1.4.1 声明 15
1.4.2 Visual Basic 6.0中的API函数声明 20
1.5 API文本浏览器 23
1.5.1 API浏览器的使用 23
1.5.2 把声明、常量或类型拷贝到Visual Basic代码中 26
1.6 API调用举例 29
1.6.1 调用API绘图函数 29
1.6.2 文本输出 31
1.6.3 环境设置 32
1.7 句柄 34
1.7.1 什么是句柄 34
1.7.2 窗口句柄 36
1.7.3 设备环境句柄 38
1.8 如何找到所需要的API 39
第2章 Win32 API函数调用 42
2.1 字符集 42
2.1.1 Win32 API使用的字符集 42
2.1.2 Visual Basic与字符集 43
2.2 字符串参数的传送 46
2.2.1 Visual Basic字符串与API字符串 46
2.2.2 字符串数据的传送 48
2.2.3 系统平台与字符串传送 50
2.3 Any类型数据的传送 53
2.4 数组与自定义类型数据的传送 55
2.4.1 数组的传送 55
2.4.2 自定义类型数据的传送 57
2.5 其他数据的传送 59
2.5.1 数值数据的传送 59
2.5.2 变体与对象 61
2.5.3 指针与属性 63
2.6 API函数调用总结 67
2.6.1 数据类型转换 67
2.6.2 含有API函数的应用程序的调试 69
第3章 资源文件 73
3.1 资源文件的建立 73
3.1.1 资源的定义 73
3.1.2 编译源资源文件 75
3.2 与使用资源文件有关的函数 76
3.2.1 由Visual Basic提供的函数 76
3.2.2 API函数sndPlaySound 78
3.3 在Visual Basic应用程序中使用资源文件 79
第4章 窗体和窗口 82
4.1 窗体标题栏的控制 82
4.1.1 使标题栏闪烁 82
4.1.2 隐藏/显示标题栏 85
4.1.3 禁用最大化、最小化和关闭按钮 92
4.1.4 移动没有标题栏的窗体 97
4.2 改变窗体形状 99
4.2.1 圆形或椭圆形窗体 99
4.2.2 多边形窗体 102
4.3 浮动窗体与透明窗体 104
4.3.1 浮动窗体 104
4.3.2 透明窗体 106
4.4 动态打开和关闭窗口 109
第5章 Windows消息系统 116
5.1 基本概念 116
5.1.1 什么是消息 116
5.1.2 消息的控制 117
5.2 Visual Basic事件与Windows消息 119
5.2.1 从消息到事件 119
5.2.2 预定义窗口程序 121
5.3 回调函数 122
5.4 增强窗口程序的功能 126
5.4.1 工作原理 127
5.4.2 程序举例 128
5.5 鼠标与键盘类消息 138
5.5.1 鼠标类消息与键盘类消息 139
5.5.2 WM_NCHITTEST消息 140
5.6 消息的截获与处理 143
5.6.1 截获单个窗口消息 143
5.6.2 截获多个窗口消息 147
5.7 常用Windows消息详解 148
5.8 窗口消息举例 172
第6章 控件消息 177
6.1 消息的发送 177
6.1.1 与发送消息有关的函数 177
6.1.2 用消息函数发送消息 182
6.2 编辑控件消息 184
6.2.1 编辑控件的通知消息 184
6.2.2 编辑控件消息 186
6.2.3 程序举例 194
6.3 列表框消息 202
6.3.1 列表框消息的分类 202
6.3.2 列表框消息 204
6.3.3 列表框消息举例 207
6.4 组合框消息 214
6.4.1 组合框消息 214
6.4.2 组合框消息举例 217
6.5 按钮控件消息 222
6.5.1 常用按钮控件消息 223
6.5.2 程序举例 224
第7章 设备环境(DC) 228
7.1 剪裁与坐标转换 228
7.1.1 剪裁 228
7.1.2 坐标转换 229
7.2 使用设备环境 230
7.2.1 设备环境的属性和分类 230
7.2.2 在Visual Basic中使用设备环境 231
7.3 设备环境与窗口 235
7.3.1 设备环境的获取和释放 235
7.3.2 程序举例 236
7.4 设备环境信息 240
7.4.1 GetDeviceCaps函数 240
7.4.2 获取设备环境信息 244
7.5 自定义设备环境 248
7.5.1 建立和删除(释放)设备环境 248
7.5.2 程序举例 252
7.6 应用举例 259
7.6.1 制作放大镜 259
7.6.2 在设备环境之间转移图像 262
7.6.3 背景制作 264
第8章 图形设备接口(GDI) 267
8.1 缩放和坐标系统 267
8.1.1 逻辑坐标与设备坐标 267
8.1.2 映射模式 268
8.1.3 视口 270
8.2 Visual Basic与GDI对象 272
8.2.1 Visual Basic绘图与API绘图 272
8.2.2 GDI对象与Visual Basic 273
8.3 画笔 274
8.3.1 建立和删除画笔 274
8.3.2 画笔程序举例 280
8.4 刷子 288
8.4.1 刷子的种类和原点 288
8.4.2 建立刷子 289
8.4.3 刷子程序举例 293
8.5 绘图函数 297
8.5.1 API绘图函数概览 298
8.5.2 贝济埃(Bezier)曲线 299
8.5.3 像素 303
8.6 区域 307
8.6.1 区域与剪裁 307
8.6.2 建立区域 308
8.6.3 区域组合与填充 313
第9章 位图、图标与光栅运算 325
9.1 位图 325
9.1.1 像素 325
9.1.2 颜色与设备 326
9.2 与设备有关的位图 327
9.2.1 与设备有关的位图的格式 327
9.2.2 使用与设备有关的位图 328
9.3 建立与设备有关的位图 330
9.3.1 相关的API函数 330
9.3.2 程序举例 333
9.4 图标与光标 337
9.4.1 图标 337
9.4.2 光标 346
9.5 光栅运算 351
9.5.1 什么是光栅运算 352
9.5.2 预定义光栅运算 353
9.5.3 在BitBlt函数中使用预定义ROP 354
9.6 图案 357
9.6.1 图案的建立 357
9.6.2 程序举例 359
9.7 应用举例 362
9.7.1 设计图像显示效果 362
9.7.2 图像的翻转、放大和缩小 367
9.7.3 使屏幕变暗 369
第10章 字体和文本 373
10.1 字体概述 373
10.1.1 字体及其分类 373
10.1.2 字体的宽度与大小 375
10.2 字体家族与字体属性 379
10.3 字体资源 380
10.3.1 字体的添加和删除 380
10.3.2 程序举例 382
10.4 字体对象 384
10.4.1 建立逻辑字体 384
10.4.2 程序举例 388
10.5 文本输出 393
10.5.1 文本的描绘 393
10.5.2 文本输出函数 395
10.6 程序举例 400
10.6.1 以不同的方式输出文本 400
10.6.2 文本旋转 406
10.7 字体信息 413
10.7.1 字体信息函数 413
10.7.2 程序举例 417
第11章 多媒体程序设计 426
11.1 概述 426
11.1.1 什么是多媒体和多媒体系统 426
11.1.2 多媒体元素 427
11.2 Visual Basic的多媒体程序设计 429
11.2.1 Windows高级多媒体服务 429
11.2.2 Visual Basic的多媒体支持 431
11.3 API多媒体函数 432
11.3.1 与多媒体有关的高级接口函数 433
11.3.2 高级接口函数的使用 435
11.4 MCI指令的构成和使用 438
11.4.1 MCI指令的构成 438
11.4.2 MCI指令的使用 440
11.5 MCI系统指令 443
11.6 MCI音频指令 445
11.6.1 音频指令详解 445
11.6.2 程序举例 450
11.7 MCI MIDI指令 454
11.7.1 MIDI指令详解 454
11.7.2 程序举例 458
11.8 MCI AVI指令 460
11.8.1 AVI指令详解 460
11.8.2 程序举例 466
11.9 MCI CD Audio指令 468
11.9.1 CD指令详解 469
11.9.2 程序举例 472
11.10 播放多种媒体文件 478
第12章 文件与系统 482
12.1 文件属性 482
12.1.1 获取和设置文件属性的API函数 483
12.1.2 程序举例 484
12.2 文件的其他信息 487
12.2.1 有关的API函数 487
12.2.2 程序举例 490
12.3 文件的拷贝与删除 494
12.3.1 SHFileOperation函数 494
12.3.2 程序举例 496
12.4 文件查找 499
12.5 系统信息 506
12.5.1 获取系统信息的API函数 506
12.5.2 程序举例 511
12.6 键盘控制 516
12.6.1 键盘信息 516
12.6.2 屏蔽Ctrl+Alt+Del和Alt+Tab键 521
12.7 屏幕区域与分辨率 523
12.7.1 相关函数和结构 523
12.7.2 程序举例 525
第13章 注册表 529
13.1 概述 529
13.1.1 什么是注册表 529
13.1.2 注册表结构 530
13.2 项的句柄 534
13.2.1 打开(建立)注册表项 534
13.2.2 程序举例 538
13.3 读取注册表项的值 540
13.3.1 读取注册表项的默认值 540
13.3.2 读取注册表项指定名称的值的数据 544
13.4 设置和删除注册表项的值 548
13.4.1 相关API函数 549
13.4.2 程序举例 552
13.5 读取指定项中所有的值 557
13.5.1 RegEnumValue和ExpandEnvironmentStringe函数 557
13.5.2 程序举例 559
13.6 访问注册表项 565
13.6.1 枚举子项 565
13.6.2 注册表项的删除 573
13.7 用注册表编辑程序建立和读取注册表数据 576
13.7.1 建立注册表项并写入数据 576
13.7.2 输出注册表数据 579
13.8 应用举例 580
13.8.1 文件关联 580
13.8.2 启动Windows时自动执行指定的程序 584
13.8.3 保存和恢复窗体的大小 587
第14章 进程通信 591
14.1 Windows中的信息交换 591
14.2 系统对象与同步对象 593
14.2.1 系统对象 593
14.2.2 同步对象 594
14.2.3 进程与线程对象 597
14.3 “唤醒”挂起的进程 598
14.3.1 相关的API函数 598
14.3.2 程序举例 603
14.4 应用程序的启动与结束 606
14.4.1 启动应用程序的API函数 606
14.4.2 程序举例 613
14.5 管道 621
14.5.1 什么是管道 621
14.5.2 管道函数 623
14.6 管道应用举例 626
14.6.1 用管道传送字符 627
14.6.2 通过管道传送文件 634
附录1 函数索引 643
附录2 程序示例 646