下载地址:https://u13576679.ctfile.com/fs/13576679-388071169
Windows程序设计(第5版珍藏版)
编辑讨论《Windows程序设计(第5版 珍藏版)》是由清华大学出版社于2010年出版的图书,作者是(美国)佩措尔德(Charles Petzold)。书 名《Windows程序设计(第5版)(珍藏版)》作 者(美国)佩措尔德(Charles Petzold)原版名称Programming Windows 5th Edition Book/CD Package译 者方敏 张胜 梁路平 等ISBN9787302227397页 数1114定 价129.00出版社清华大学出版社出版时间2010.09装 帧平装开 本16开
目录
编辑推荐
编辑《Windows程序设计(第5版 珍藏版)》作为Windows开发人员的必备参考,涵盖基础知识和中高级主题,全面地介绍了Windows程序设计所涉及的细枝末节,旨在帮助读者从高屋见瓴的角度,建立完整的知识体系,为以后的职业生涯奠定良好的基础。全书共3部分23章。第1~12章着重介绍基础知识,第13~18章的主题为图形,第19~23章涉及更多高级主题。 适合任何层次的Windows程序员阅读和参考,是帮助他们梳理和建立Windows知识体系的理想读物。 [1]关于Windows开发的种种问题,大家都习惯性地“Look it up in Petzold”。在这部备受业内人士尊崇的经典著作中,Charles Petzold,这位荣获Windows Pioneer Award的作者,通过其清晰的结构、通俗的语言、睿智的见解,条分缕析地全面呈现了精彩的Windows编程世界。书中包含权威实例,适合任何层次的Windows程序员阅读和参考。配套CD含可运行于VS2008的全新范例。
作者简介
编辑佩措尔德(Charles Petzold),从1984年起,Charles Petzold就一直在从事个人计算机编程方面的写作工作,而且自1985年起就在微软Windows上编写程序。在1986年12月的Microsoft Systems Journal上,他发表了第一篇关 Windows编程的文章。在1986至1995年之间,他为PC Magazine系统环境专栏撰写了大量的文章,为读者们介绍Windows和OS/2编程的方方面面。
方敏,现任微软Windows国际软件工程首席测试部门主管,有着近20年软件测试管理和开发的丰富经验,曾参加过微软多项重大产品和技术的研制,包括Windows Server/Client/Security,SQL Server,Exchange Server,MSN,COM+Setvices,Windows Media及微软内部IT工具等。方敏拥有清华大学电子工程学学士和硕士学位,美国新墨西哥技术学院计算机硕士学位。张胜,现任微软总部高级软件开发测试主管,10余年软件开发测试和团队管理经验,参与Visual Studio,SQL Server,Office Live的开发、测试和发布,现主管Office Communications Server本地化软件开发测试工作。张胜拥有复旦大学计算机系硕士和学士学位。梁路平,获得清华大学计算机工程学士、加拿大滑铁卢大学计算机科学数学硕士和UBC。计算机科学博士等学位。曾任清华大学计算机系教师,加拿大BNR/Nortel高级网络系统科学家,美国Microsoft系统性能工程师,程序员及MSN项目经理。上世纪80年代,代表清华大学与加拿大CDNNET中心谈判,无偿引进网络软件开发环境EAN,并和中国因特网之父清华大学胡道元教授历史性地互换了中国大陆与北美之间的首封Email。业余喜欢掺和社区公益活动、希望工程、海外中文教育,喜欢和朋友相聚、读书、听音乐,跟家人一起周游世界。
目录
第1部分 基础知识
第1章 起步
1.1 Windows环境
1.1.1 Windows简史
1.1.2 Windows的方方面面
1.1.3 动态链接
1.2 Windows编程选项
1.2.1 API及内存管理模式
1.2.2 语言选择
1.2.3 编程环境
1.2.4 API文档
1.3 你的第一个Windows程序
1.3.1 字符模式
1.3.2 Windows对应程序
1.3.3 头文件
1.3.4 程序入口
1.3.5 MessageBox函数
1.3.6 编译、链接及运行
第2章Unicode简介
2.1 字符集简史
2.1.1 美国标准
2.1.2 美国以外的世界
2.1.3 扩展ASCII
2.1.4 双字节字符集
2.1.5 Unicode的解救方案
2.2 宽字符和c语言
2.2.1 char数据类型
2.2.2 更宽的字符
2.2.3 宽字符库函数
2.2.4 维护一个源代码文件
2.3 宽字符和Windows
2.3.1 Windows头文件的类型
2.3.2 Windows函数调用
2.3.3 Windows的字符串函数
2.3.4 在Windows中使用printf
2.3.5 格式化的消息框
2.3.6 国际化之于本书
第3章 窗口与消息
3.1 窗口的创建
3.1.1 系统结构概述
3.1.2 HELLOWIN程序
3.1.3 通盘考虑
3.1.4 窗口类的注册
3.1.5 窗口的创建
3.1.6 窗口的显示
3.1.7 消息循环
3.1.8 窗口过程
3.1.9 消息的处理
3.1.10 声音文件的播放
3.1.11 WM_PAINT消息
3.1.12 WM_DESTROY消息
3.2 Windows编程中的若干难点
3.2.1 究竟是谁调用谁
3.2.2 队列消息和非队列消息
3.2.3 速战速决
第4章 文本输出
4.1 绘制和重绘
4.1.1 WM_PAINT消息
4.1.2 有效矩形和无效矩形
4.2 GDI简介
4.2.1 设备环境
4.2.2 获取设备环境句柄:方法一
4.2.3 绘制信息结构
4.2.4 获取设备环境句柄:方法二
4.2.5 TEXTOUT函数详解
4.2.6 系统字体
4.2.7 字符大小
4.2.8 文本尺寸的度量
4.2.9 文本的格式化
4.2.10 综合使用
4.2.11 SYSMETSl.C窗口过程
4.2.12 空间不够
4.2.13 客户区的尺寸
4.3 滚动条
4.3.1 滚动条的范围和位置
4.3.2 滚动条消息
4.3.3 加入滚动条的SYSMET
4.3.4 程序的绘制代码的结构
4.4 效果更好的滚动
4.4.1 滚动条信息函数
4.4.2 最远可以卷动到哪里?
4.4.3 新的SYSMETS
4.4.4 可我不想用鼠标
第5章 绘图基础
5.1 GDI的结构
5.1.1 GDI原理
5.1.2 GDI函数调用
5.1.3 GDI的基本图形
5.1.4 其他
5.2 设备环境
5.2.1 获取设备环境句柄
5.2.2 获取设备环境的信息
5.2.3 DEVCAPSl程序
5.2.4 设备的尺寸
5.2.5 色彩ABC
5.2.6 设备环境属性
5.2.7 保存设备环境
5.3 点和线的绘制
5.3.1 设定像素
5.3.2 直线
5.3.3 边框绘制函数
5.3.4 贝塞尔样条曲线
5.3.5 使用现有画笔
5.3.6 创建、选择和删除画笔
5.3.7 填充空隙
5.3.8 绘图模式
5.4 绘制填充区域
5.4.1 Polygon函数和多边形填充模式
5.4.2 用画刷填充内部
5.5 GDI映射模式
5.5.1 设备坐标和逻辑坐标
5.5.2 设备坐标系统
5.5.3 视口和窗口
5.5.4 使用MMTEXT
5.5.5 度量映射模式
5.5.6 自定义的映射模式
5.5.7 WHATSIZE程序
5.6 矩形、区域和剪裁
5.6.1 处理矩形
5.6.2 随机矩形
5.6.3 建立和绘制区域
5.6.4 矩形与区域的剪裁
5.6.5 CLOVER程序
第6章 键盘
6.1 键盘基础
6.1.1 忽略键盘
6.1.2 谁获得了焦点?
6.1.3 队列和同步
6.1.4 击键和字符
6.2 击键消息
6.2.1 系统键击和非系统键击
6.2.2 虚拟键代码
6.2.3 1param信息
6.2.4 转义状态
6.2.5 使用击键消息
6.2.6 为SYSMETS加上键盘处理功能
6.3 字符消息
6.3.1 四类字符消息
6.3.2 消息排序
6.3.3 控制字符的处理
6.3.4 死字符消息
6.4 键盘消息和字符集
6.4.1 KEYVIEW1程序
6.4.2 非英语键盘问题
6.4.3 字符集和字体
6.4.4 Unicode解决方案
6.4.5 TrueType字体和大字体
6.5 插入符号(不是光标)
6.5.1 一些关于插入符号的函数
6.5.2 TYPER程序
第7章 鼠标
7.1 鼠标的基础知识
7.1.1 一些基本术语
7.1.2 鼠标的复数形式是什么?
7.2 客户区鼠标消息
7.2.1 简单的鼠标处理示例
7.2.2 处理Shift键
7.2.3 鼠标双击
7.3 非客户区鼠标消息
7.3.1 击中测试消息
7.3.2 消息引发消息
7.4 程序中的击中测试
7.4.1 一个假想的例子
7.4.2 一个简单的程序
7.4.3 使用键盘模仿鼠标操作
7.4.4 在CHECKER中增加键盘接口
7.4.5 在击中测试中使用子窗口
7.4.6 CHECKER程序中的子窗口
7.4.7 子窗口和键盘
7.5 捕获鼠标
7.5.1 设计一个矩形
7.5.2 捕获的解决方案
7.5.3 BLOKOUT2程序
7.6 鼠标的滚轮
第8章 计时器
8.1 计时器的基本知识
8.1.1 系统和计时器
8.1.2 计时器消息不是异步的
8.2 使用计时器的三种方法
8.2.1 方法一
8.2.2 方法二
8.2.3 方法三
8.3 使用计时器作为时钟
8.3.1 数字时钟
8.3.2 获取当前时间
8.3.3 显示数字和冒号
8.3.4 考虑国际化
8.3.5 模拟时钟
8.4 在状态报告上使用计时器
第9章 子窗口控件
9.1 按钮类
9.1.1 创建子窗口
9.1.2 子窗口传递信息给父窗口
9.1.3 父窗口传递信息给子窗口
9.1.4 按钮
9.1.5 复选框
9.1.6 单选按钮
9.1.7 组合框
9.1.8 改变按钮文本
9.1.9 可见的按钮和启用的按钮
9.1.10 按钮和输入焦点
9.2 控件和颜色
9.2.1 系统颜色
9.2.2 按钮的颜色
9.2.3 WMCTLCOLORBTN消息
9.2.4 自绘按钮
9.3 静态类
9.4 滚动条类
9.4.1 COLORS1程序
9.4.2 自动键盘接口
9.4.3 窗口子类
9.4.4 背景着色
9.4.5 给滚动条和静态文本着色
9.5 编辑类
9.5.1 编辑类的样式
9.5.2 编辑控件的通知消息
9.5.3 使用编辑控件
9.5.4 传递给编辑控件的消息
9.6 列表框类
9.6.1 列表框的样式
9.6.2 向列表框中添加字符串
9.6.3 项目的选择和提取
9.6.4 接收来自列表框的消息
9.6.5 简单的列表框程序
9.6.6 列出文件
9.6.7 Windows的HEAD程序
第10章 菜单和其他资源
10.1 图标、鼠标指针、字符串和自定义资源
10.1.1 向程序添加图标
10.1.2 获得图标的句柄
10.1.3 在应用程序中使用图标
10.1.4 使用自定义鼠标指针
10.1.5 字符串资源
10.1.6 自定义资源
10.2 菜单
10.2.1 和菜单有关的概念
10.2.2 菜单结构
10.2.3 定义菜单
10.2.4 在程序中引用菜单
10.2.5 菜单和消息
10.2.6 范例程序
10.2.7 菜单设计中的规范
10.2.8 定义菜单的繁琐方式
10.2.9 浮动弹出菜单
10.2.1 0使用系统菜单
10.2.1 1改变菜单
10.2.1 2其他菜单命令
10.2.1 3菜单的另类用法
10.3 键盘加速键
10.3.1 为什么你应该使用键盘加速键
10.3.2 指定加速键的一些规则
10.3.3 加速键表
10.3.4 加载加速键表
10.3.5 翻译按键
10.3.6 接收加速键消息
10.3.7 带有菜单和加速键的POPPAD程序
10.3.8 启用菜单项
10.3.9 处理菜单项
第11章 对话框
11.1 模态对话框
11.1.1 创建一个About对话框
11.1.2 对话框及其模板
11.1.3 对话框过程
11.1.4 激活对话框
11.1.5 主题变换
11.1.6 更复杂的对话框
11.1.7 对话框控件的应用
11.1.8 OK和Cancel按钮
11.1.9 避免全局变量
11.1.1 0Tab停靠和选项组
11.1.1 1在对话框上绘图
11.1.1 2关于对话框的其他函数.
11.1.1 3定义程序自己的控件
11.2 非模态对话框
11.2.1 模态与非模态对话框的区别
11.2.2 新的COLORS程序
11.2.3 HEXCALC:窗口还是对话框?
11.3 公用对话框
11.3.1 完善POPPAD
11.3.2 Unicode文件的读/写操作
11.3.3 改变字体
11.3.4 查找和替换
11.3.5 只调用一个函数的Windows程序
第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
第II部分关于图的那些事儿
第13章使用打印机 471
13.1打印基础 472
13.1.1打印和后台处理 472
13.1.2打印机设备环境 475
13.1.3DEVCAPS程序修订版 477
13.1.4PrinterProperties函数调用 485
13.1.5检查BitBlt的能力 485
13.1.6最简单的打印程序 486
13.2打印图形和文字 487
13.2.1打印精华 490
13.2.2用异常终止过程取消打印 491
13.2.3Windows如何使用
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.3GDI中的位图支持 510
14.3位块传输 511
14.3.1简单的BitBlt 511
14.3.2拉伸位图 514
14.3.3StretchBlt模式 517
14.3.4光栅操作 517
14.3.5图案Blt 519
14.4GDI位图对象 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.1DIB文件格式 569
15.1.1OS/2风格的DIB 570
15.1.2自下而上存储! 572
15.1.3DIB像素位 573
15.1.4Windows扩展DIB 574
15.1.5现实情况 577
15.1.6DIB压缩 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.3DIB的颠倒世界 604
15.2.4顺序显示 610
15.2.6颜色转换、调色板和性能 625
15.3DIB和DDB的结合 626
15.3.1从DIB创建DDB 627
15.3.2从DDB到DIB 633
15.3.3DIB区块 633
15.3.4DIB区块的更多不同点 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.1DIBSTRUCT结构 712
16.4.2信息获取函数 713
16.4.3读/写像素信息 719
16.4.4创建和转换 722
16.4.5DIBHELP头文件和宏 732
16.4.6DIBBLE程序 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.2TrueType字体 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.2PICKFONT程序 779
17.3.3逻辑字体结构 792
17.3.4字体匹配算法 795
17.3.5获取字体信息 796
17.3.6字符集和Unicode 798
17.3.7EZFONT系统 799
17.3.8字体旋转 806
17.4字体枚举 807
17.4.1枚举函数 808
17.4.2ChooseFont对话框 808
17.5设置段落格式 816
17.5.1设置简单的文本格式 816
17.5.2段落的处理 817
17.5.3打印预览 824
17.6一些有趣和新奇的内容 833
17.6.1GDI路径 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
第III部分高级主题
19.1MDI的概念 905
19.1.1MDI的构成元素 905
19.1.2MDI支持 906
19.2MDI实现范例 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.1DOS下的多任务 923
20.1.2非抢占式的多任务 924
20.1.3PM和串行消息队列 925
20.1.4多线程解决方案 925
20.1.5多线程架构 926
20.1.6线程的麻烦 927
20.1.7Windows的好处 927
20.1.8新的!改进过的!加了
线程的! 928
20.2Windows中的多线程 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.1BIGJOB1程序 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.6STRPROG程序 969
21.1.7多个STRPROG实例共享
数据 973
21.2关于动态链接库的其他话题 974
21.2.1没有导入函数的动态
链接库 974
21.2.2资源库 975
第22章声音和音乐 979
22.1Windows和多媒体 979
22.1.1多媒体硬件 979
22.1.2API概述 980
22.1.3使用TESTMCI程序来
学习MCI 981
22.1.4TESTMCI和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.3MIDI和音乐 1035
22.3.1MIDI的工作方式 1035
22.3.2音色变换 1037
22.3.3MIDI通道 1037
22.3.4MIDI消息 1038
22.3.5MIDI序列简介 1040
22.3.6通过PC键盘演奏MIDI
合成器 1045
22.3.7MIDI打鼓机器 1059
22.3.8多媒体time函数 1075
22.3.9RIFF文件I/O 1078
第23章尝试互联网 1081
23.1Windows套接字 1081
23.1.1套接字和TCP/IP 1081
23.1.2网络时间服务 1082
23.1.3NETTIME程序 1083
23.2WinInet和FTP 1093
23.2.1FTPAPI概述 1094
23.2.2UPDDEMO程序 1095
文章评论