Windows程序设计 珍藏版PDF电子书下载
- 电子书积分:28 积分如何计算积分?
- 作 者:(美)佩措尔德著
- 出 版 社:北京市:清华大学出版社
- 出版年份:2010
- ISBN:9787302227397
- 页数:1114 页
第Ⅰ部分 基础知识 3
第1章 起步 3
1.1 Windows环境 3
1.1.1 Windows简史 4
1.1.2 Windows的方方面面 5
1.1.3 动态链接 7
1.2 Windows编程选项 8
1.2.1 API及内存管理模式 8
1.2.2 语言选择 9
1.2.3 编程环境 11
1.2.4 API文档 11
1.3 你的第一个Windows程序 12
1.3.1 字符模式 12
1.3.2 Windows对应程序 13
1.3.3 头文件 14
1.3.4 程序入口 14
1.3.5 MessageBox函数 16
1.3.6 编译、链接及运行 17
第2章 Unicode简介 19
2.1 字符集简史 19
2.1.1 美国标准 20
2.1.2 美国以外的世界 21
2.1.3 扩展ASCII 21
2.1.4 双字节字符集 23
2.1.5 Unicode的解救方案 24
2.2 宽字符和C语言 24
2.2.1 char数据类型 25
2.2.2 更宽的字符 26
2.2.3 宽字符库函数 27
2.2.4 维护一个源代码文件 28
2.3 宽字符和Windows 29
2.3.1 Windows头文件的类型 29
2.3.2 Windows函数调用 31
2.3.3 Windows的字符串函数 32
2.3.4 在Windows中使用printf 32
2.3.5 格式化的消息框 34
2.3.6 国际化之于本书 35
第3章 窗口与消息 37
3.1 窗口的创建 37
3.1.1 系统结构概述 37
3.1.2 HELLOWIN程序 39
3.1.3 通盘考虑 41
3.1.4 窗口类的注册 45
3.1.5 窗口的创建 50
3.1.6 窗口的显示 52
3.1.7 消息循环 53
3.1.8 窗口过程 54
3.1.9 消息的处理 55
3.1.10 声音文件的播放 55
3.1.11 WM_PAINT消息 56
3.1.12 WM_DESTROY消息 58
3.2 Windows编程中的若干难点 58
3.2.1 究竟是谁调用谁 58
3.2.2 队列消息和非队列消息 60
3.2.3 速战速决 61
第4章 文本输出 63
4.1 绘制和重绘 63
4.1.1 WM_PAINT消息 64
4.1.2 有效矩形和无效矩形 65
4.2 GDI简介 65
4.2.1 设备环境 66
4.2.2 获取设备环境句柄:方法一 66
4.2.3 绘制信息结构 67
4.2.4 获取设备环境句柄:方法二 69
4.2.5 TEXTOUT函数详解 70
4.2.6 系统字体 71
4.2.7 字符大小 71
4.2.8 文本尺寸的度量 72
4.2.9 文本的格式化 73
4.2.10 综合使用 74
4.2.11 SYSMETS1.C窗口过程 80
4.2.12 空间不够 81
4.2.13 客户区的尺寸 81
4.3 滚动条 82
4.3.1 滚动条的范围和位置 83
4.3.2 滚动条消息 85
4.3.3 加入滚动条的SYSMETS 86
4.3.4 程序的绘制代码的结构 90
4.4 效果更好的滚动 91
4.4.1 滚动条信息函数 91
4.4.2 最远可以卷动到哪里? 93
4.4.3 新的SYSMETS 93
4.4.4 可我不想用鼠标 98
第5章 绘图基础 99
5.1 GDI的结构 99
5.1.1 GDI原理 99
5.1.2 GDI函数调用 101
5.1.3 GDI的基本图形 101
5.1.4 其他 102
5.2 设备环境 103
5.2.1 获取设备环境句柄 103
5.2.2 获取设备环境的信息 105
5.2.3 DEVCAPS1程序 105
5.2.4 设备的尺寸 108
5.2.5 色彩ABC 113
5.2.6 设备环境属性 115
5.2.7 保存设备环境 116
5.3 点和线的绘制 117
5.3.1 设定像素 117
5.3.2 直线 118
5.3.3 边框绘制函数 122
5.3.4 贝塞尔样条曲线 127
5.3.5 使用现有画笔 131
5.3.6 创建、选择和删除画笔 132
5.3.7 填充空隙 135
5.3.8 绘图模式 136
5.4 绘制填充区域 137
5.4.1 Polygon函数和多边形填充模式 138
5.4.2 用画刷填充内部 142
5.5 GDI映射模式 144
5.5.1 设备坐标和逻辑坐标 145
5.5.2 设备坐标系统 146
5.5.3 视口和窗口 147
5.5.4 使用MM_TEXT 148
5.5.5 度量映射模式 151
5.5.6 自定义的映射模式 153
5.5.7 WHATSIZE程序 158
5.6 矩形、区域和剪裁 161
5.6.1 处理矩形 161
5.6.2 随机矩形 162
5.6.3 建立和绘制区域 166
5.6.4 矩形与区域的剪裁 167
5.6.5 CLOVER程序 168
第6章 键盘 173
6.1 键盘基础 173
6.1.1 忽略键盘 173
6.1.2 谁获得了焦点? 174
6.1.3 队列和同步 175
6.1.4 击键和字符 175
6.2 击键消息 176
6.2.1 系统键击和非系统键击 176
6.2.2 虚拟键代码 177
6.2.3 lparam信息 180
6.2.4 转义状态 181
6.2.5 使用击键消息 182
6.2.6 为SYSMETS加上键盘处理功能 183
6.3 字符消息 188
6.3.1 四类字符消息 189
6.3.2 消息排序 190
6.3.3 控制字符的处理 191
6.3.4 死字符消息 192
6.4 键盘消息和字符集 192
6.4.1 KEYVIEW1程序 193
6.4.2 非英语键盘问题 197
6.4.3 字符集和字体 199
6.4.4 Unicode解决方案 207
6.4.5 TrueType字体和大字体 208
6.5 插入符号(不是光标) 213
6.5.1 一些关于插入符号的函数 214
6.5.2 TYPER程序 215
第7章 鼠标 221
7.1 鼠标的基础知识 221
7.1.1 一些基本术语 222
7.1.2 鼠标的复数形式是什么? 223
7.2 客户区鼠标消息 223
7.2.1 简单的鼠标处理示例 225
7.2.2 处理Shift键 228
7.2.3 鼠标双击 229
7.3 非客户区鼠标消息 230
7.3.1 击中测试消息 231
7.3.2 消息引发消息 231
7.4 程序中的击中测试 232
7.4.1 一个假想的例子 232
7.4.2 一个简单的程序 233
7.4.3 使用键盘模仿鼠标操作 236
7.4.4 在CHECKER中增加键盘接口 237
7.4.5 在击中测试中使用子窗口 240
7.4.6 CHECKER程序中的子窗口 240
7.4.7 子窗口和键盘 244
7.5 捕获鼠标 249
7.5.1 设计一个矩形 249
7.5.2 捕获的解决方案 252
7.5.3 BLOKOUT2程序 253
7.6 鼠标的滚轮 255
第8章 计时器 263
8.1 计时器的基本知识 263
8.1.1 系统和计时器 264
8.1.2 计时器消息不是异步的 264
8.2 使用计时器的三种方法 265
8.2.1 方法一 265
8.2.2 方法二 268
8.2.3 方法三 271
8.3 使用计时器作为时钟 271
8.3.1 数字时钟 271
8.3.2 获取当前时间 275
8.3.3 显示数字和冒号 275
8.3.4 考虑国际化 276
8.3.5 模拟时钟 277
8.4 在状态报告上使用计时器 281
第9章 子窗口控件 285
9.1 按钮类 286
9.1.1 创建子窗口 289
9.1.2 子窗口传递信息给父窗口 290
9.1.3 父窗口传递信息给子窗口 291
9.1.4 按钮 292
9.1.5 复选框 293
9.1.6 单选按钮 294
9.1.7 组合框 294
9.1.8 改变按钮文本 295
9.1.9 可见的按钮和启用的按钮 295
9.1.10 按钮和输入焦点 296
9.2 控件和颜色 297
9.2.1 系统颜色 297
9.2.2 按钮的颜色 298
9.2.3 WM_CTLCOLORBTN消息 299
9.2.4 自绘按钮 300
9.3 静态类 305
9.4 滚动条类 306
9.4.1 COLORS1程序 307
9.4.2 自动键盘接口 312
9.4.3 窗口子类 313
9.4.4 背景着色 313
9.4.5 给滚动条和静态文本着色 314
9.5 编辑类 315
9.5.1 编辑类的样式 317
9.5.2 编辑控件的通知消息 318
9.5.3 使用编辑控件 318
9.5.4 传递给编辑控件的消息 319
9.6 列表框类 320
9.6.1 列表框的样式 320
9.6.2 向列表框中添加字符串 321
9.6.3 项目的选择和提取 322
9.6.4 接收来自列表框的消息 323
9.6.5 简单的列表框程序 324
9.6.6 列出文件 327
9.6.7 Windows的HEAD程序 328
第10章 菜单和其他资源 333
10.1 图标、鼠标指针、字符串和自定义资源 333
10.1.1 向程序添加图标 334
10.1.2 获得图标的句柄 338
10.1.3 在应用程序中使用图标 340
10.1.4 使用自定义鼠标指针 341
10.1.5 字符串资源 342
10.1.6 自定义资源 344
10.2 菜单 350
10.2.1 和菜单有关的概念 350
10.2.2 菜单结构 351
10.2.3 定义菜单 351
10.2.4 在程序中引用菜单 352
10.2.5 菜单和消息 353
10.2.6 范例程序 355
10.2.7 菜单设计中的规范 359
10.2.8 定义菜单的繁琐方式 360
10.2.9 浮动弹出菜单 361
10.2.10 使用系统菜单 365
10.2.11 改变菜单 367
10.2.12 其他菜单命令 368
10.2.13 菜单的另类用法 369
10.3 键盘加速键 373
10.3.1 为什么你应该使用键盘加速键 373
10.3.2 指定加速键的一些规则 373
10.3.3 加速键表 374
10.3.4 加载加速键表 374
10.3.5 翻译按键 375
10.3.6 接收加速键消息 376
10.3.7 带有菜单和加速键的POPPAD程序 376
10.3.8 启用菜单项 381
10.3.9 处理菜单项 382
第11章 对话框 385
11.1 模态对话框 385
11.1.1 创建一个About对话框 386
11.1.2 对话框及其模板 389
11.1.3 对话框过程 391
11.1.4 激活对话框 392
11.1.5 主题变换 393
11.1.6 更复杂的对话框 396
11.1.7 对话框控件的应用 401
11.1.8 OK和Cancel按钮 403
11.1.9 避免全局变量 405
11.1.10 Tab停靠和选项组 406
11.1.11 在对话框上绘图 407
11.1.12 关于对话框的其他函数 408
11.1.13 定义程序自己的控件 408
11.2 非模态对话框 413
11.2.1 模态与非模态对话框的区别 414
11.2.2 新的COLORS程序 415
11.2.3 HEXCALC:窗口还是对话框? 419
11.3 公用对话框 425
11.3.1 完善POPPAD 426
11.3.2 Unicode文件的读/写操作 443
11.3.3 改变字体 443
11.3.4 查找和替换 444
11.3.5 只调用一个函数的Windows程序 444
第12章 剪贴板 447
12.1 剪贴板的简单用法 447
12.1.1 剪贴板数据的标准格式 447
12.1.2 内存分配 449
12.1.3 把文本传到剪贴板 451
12.1.4 从剪贴板中取得文本 452
12.1.5 打开和关闭剪贴板 453
12.1.6 剪贴板和Unicode 453
12.2 剪贴板的高级用法 457
12.2.1 使用多种数据项 458
12.2.2 延迟呈现 459
12.2.3 私有数据类型 460
12.3 实现一个剪贴板查看器 462
12.3.1 剪贴板查看器链 463
12.3.2 剪贴板查看器函数和消息 463
12.3.3 一个简单的剪贴板查看器 465
第Ⅱ部分 关于图的那些事儿第13章 使用打印机 471
13.1 打印基础 472
13.1.1 打印和后台处理 472
13.1.2 打印机设备环境 475
13.1.3 DEVCAPS程序修订版 477
13.1.4 PrinterProperties函数调用 485
13.1.5 检查BitBlt的能力 485
13.1.6 最简单的打印程序 486
13.2 打印图形和文字 487
13.2.1 打印精华 490
13.2.2 用异常终止过程取消打印 491
13.2.3 Windows如何使用AbortProc 492
13.2.4 实现异常终止过程 493
13.2.5 增加一个打印对话框 495
13.2.6 增加打印功能到POPPAD 498
第14章 位图和位块传输 505
14.1 位图基础 505
14.2 位图尺寸 506
14.2.1 颜色和位图 507
14.2.2 现实世界的设备 507
14.2.3 GDI中的位图支持 510
14.3 位块传输 511
14.3.1 简单的BitBlt 511
14.3.2 拉伸位图 514
14.3.3 StretchBlt模式 517
14.3.4 光栅操作 517
14.3.5 图案Blt 519
14.4 GDI位图对象 522
14.4.1 创建DDB 522
14.4.2 位图的位 524
14.4.3 内存设备环境 525
14.4.4 加载位图资源 526
14.4.5 单色位图格式 529
14.4.6 位图画刷 532
14.4.7 在位图上绘图 534
14.4.8 阴影位图 537
14.4.9 在菜单中使用位图 541
14.4.10 非矩形的位图图像 552
14.4.11 简单的动画效果 556
14.4.12 窗口以外的位图 559
第15章 设备无关位图 569
15.1 DIB文件格式 569
15.1.1 OS/2风格的DIB 570
15.1.2 自下而上存储! 572
15.1.3 DIB像素位 573
15.1.4 Windows扩展DIB 574
15.1.5 现实情况 577
15.1.6 DIB压缩 578
15.1.7 颜色遮罩 581
15.1.8 版本4的文件头 583
15.1.9 版本5的头文件 587
15.1.10 显示DIB信息 588
15.2 显示和打印 594
15.2.1 探究DIB 595
15.2.2 从像素到像素 597
15.2.3 DIB的颠倒世界 604
15.2.4 顺序显示 610
15.2.5 拉伸到合适大小 617
15.2.6 颜色转换、调色板和性能 625
15.3 DIB和DDB的结合 626
15.3.1 从DIB创建DDB 627
15.3.2 从DDB到DIB 633
15.3.3 DIB区块 633
15.3.4 DIB区块的更多不同点 640
15.3.5 文件映射选项 641
第16章 调色板管理器 643
16.1 调色板的使用 643
16.1.1 视频硬件 643
16.1.2 显示灰色图像 644
16.1.3 调色板的消息 650
16.1.4 调色板索引方式 651
16.1.5 查询对调色板的支持 654
16.1.6 系统调色板 655
16.1.7 其他的调色板函数 655
16.1.8 光栅操作的问题 656
16.1.9 查看系统调色板 657
16.2 调色板动画 665
16.2.1 弹球 666
16.2.2 单一条目的调色板动画 672
16.2.3 工程应用 676
16.3 调色板和现实世界中的图像 680
16.3.1 调色板和紧凑DIB 680
16.3.2 通用调色板 688
16.3.3 半色调调色板 693
16.3.4 索引调色板颜色 697
16.3.5 调色板和位图对象 702
16.3.6 调色板和DIB区块 706
16.4 一个DIB位图库的实现 711
16.4.1 DIBSTRUCT结构 712
16.4.2 信息获取函数 713
16.4.3 读/写像素信息 719
16.4.4 创建和转换 722
16.4.5 DIBHELP头文件和宏 732
16.4.6 DIBBLE程序 734
16.4.7 简单的调色板和优化的调色板 753
16.4.8 格式转换 765
第17章 文本和字体 769
17.1 简单文本输出 769
17.1.1 文本输出函数 769
17.1.2 文本的设备环境属性 772
17.1.3 使用库存字体 773
17.2 字体的背景知识 774
17.2.1 字体分类 774
17.2.2 TrueType字体 775
17.2.3 属性和样式的区别 776
17.2.4 点值 776
17.2.5 行间距和字间距 776
17.2.6 逻辑英寸问题 777
17.3 逻辑字体 778
17.3.1 逻辑字体的创建和选择 778
17.3.2 PICKFONT程序 779
17.3.3 逻辑字体结构 792
17.3.4 字体匹配算法 795
17.3.5 获取字体信息 796
17.3.6 字符集和Unicode 798
17.3.7 EZFONT系统 799
17.3.8 字体旋转 806
17.4 字体枚举 807
17.4.1 枚举函数 808
17.4.2 ChooseFont对话框 808
17.5 设置段落格式 816
17.5.1 设置简单的文本格式 816
17.5.2 段落的处理 817
17.5.3 打印预览 824
17.6 一些有趣和新奇的内容 833
17.6.1 GDI路径 834
17.6.2 扩展的画笔 835
17.6.3 四个范例程序 838
第18章 图元文件 845
18.1 老式图元文件格式 845
18.1.1 内存图元文件的简单用法 846
18.1.2 把图元文件存储到磁盘 848
18.1.3 老式的图元文件和剪贴板 849
18.2 增强型图元文件 853
18.2.1 基本步骤 853
18.2.2 窥探内部机制 856
18.2.3 图元文件和GDI对象 862
18.2.4 图元文件和位图 867
18.2.5 枚举图元文件 870
18.2.6 嵌入图像 876
18.2.7 增强型图元文件的查看和打印程序 879
18.2.8 显示精确的图元文件图像 887
18.2.9 缩放比例和纵横比 895
18.2.10 图元文件中的映射模式 897
18.2.11 使用映射模式显示图元文件 899
第Ⅲ部分 高级主题 905
第19章 多文档界面 905
19.1 MDI的概念 905
19.1.1 MDI的构成元素 905
19.1.2 MDI支持 906
19.2 MDI实现范例 907
19.2.1 三个菜单 917
19.2.2 程序初始化 917
19.2.3 创建子窗口 918
19.2.4 更多框架窗口消息的处理 919
19.2.5 子文档窗口 920
19.2.6 清理 922
第20章 多任务和多线程 923
20.1 多任务的模型 923
20.1.1 DOS下的多任务 923
20.1.2 非抢占式的多任务 924
20.1.3 PM和串行消息队列 925
20.1.4 多线程解决方案 925
20.1.5 多线程架构 926
20.1.6 线程的麻烦 927
20.1.7 Windows的好处 927
20.1.8 新的!改进过的!加了线程的! 928
20.2 Windows中的多线程 929
20.2.1 随机矩形程序的多线程版本 929
20.2.2 编程竞赛问题 932
20.2.3 多线程的解决方案 937
20.2.4 还有问题吗? 944
20.2.5 休眠的好处 945
20.3 线程的同步 945
20.4 触发事件 947
20.4.1 BIGJOB1程序 947
20.4.2 事件对象 951
20.5 线程本地存储 955
第21章 动态链接库 957
21.1 关于库的基本知识 957
21.1.1 库:一词多义 958
21.1.2 一个简单的DLL 958
21.1.3 库的入口点和退出点 961
21.1.4 测试程序 962
21.1.5 在DLL中共享内存 964
21.1.6 STRPROG程序 969
21.1.7 多个STRPROG实例共享数据 973
21.2 关于动态链接库的其他话题 974
21.2.1 没有导入函数的动态链接库 974
21.2.2 资源库 975
第22章 声音和音乐 979
22.1 Windows和多媒体 979
22.1.1 多媒体硬件 979
22.1.2 API概述 980
22.1.3 使用TESTMCI程序来学习MCI 981
22.1.4 TESTMCI和CD音频 985
22.2 波形音频 989
22.2.1 声音和波形 989
22.2.2 脉冲编码调制 990
22.2.3 采样率 990
22.2.4 采样大小 991
22.2.5 用软件生成正弦波 992
22.2.6 数字录音机 1000
22.2.7 使用MCI的录音机 1010
22.2.8 用MCI命令字符串的方法 1016
22.2.9 波形音频文件格式 1019
22.2.10 尝试使用加法合成 1021
22.2.11 波形音频闹钟 1028
22.3 MIDI和音乐 1035
22.3.1 MIDI的工作方式 1035
22.3.2 音色变换 1037
22.3.3 MIDI通道 1037
22.3.4 MIDI消息 1038
22.3.5 MIDI序列简介 1040
22.3.6 通过PC键盘演奏MIDI合成器 1045
22.3.7 MIDI打鼓机器 1059
22.3.8 多媒体time函数 1075
22.3.9 RIFF文件I/O 1078
第23章 尝试互联网 1081
23.1 Windows套接字 1081
23.1.1 套接字和TCP/IP 1081
23.1.2 网络时间服务 1082
23.1.3 NETTIME程序 1083
23.2 WinInet和FTP 1093
23.2.1 FTP API概述 1094
23.2.2 UPDDEMO程序 1095
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《泰国通史 珍藏本》段立生著 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019