Windows程序设计.pdf

Windows程序设计.pdf
 

书籍描述

编辑推荐
《Windows程序设计(第5版 珍藏版)》:享誉全球、普渡众程序员的Windows编程圣经。
关于Windows开发的种种问题,大家都习惯性地“Look it up in Petzold”。在这部备受业内人士尊崇的经典著作中,Charles Petzold,这位荣获Windows Pioneer Award的大师,通过其清晰的结构、通俗的语言、睿智的见解,条分缕析地全面呈现了精彩的Windows编程世界。书中包含权威实例,适合任何层次的Windows程序员阅读和参考。
雄踞榜首长达数十年的Windows编程圣经
锻造近50万Windows技术精英的传世经典
译文准确、流畅,由微软技术专家重新演绎
配套CD含可运行于VS2008的全新范例

作者简介
作者:(美国)佩措尔德(Charles Petzold) 译者:方敏 张胜 梁路平 等

Charles Petzold,从1984年起,Charles Petzold就一直在从事个人计算机编程方面的写作工作,而且自1985年起就在微软Windows上编写程序。在1986年12月的Microsoft Systems Journal上,他发表了第一篇关 Windows编程的文章。在1986至1995年之间,他为PC Magazine系统环境专栏撰写了大量的文章,为读者们介绍Windows和OS/2编程的方方面面。
《Windows程序设计》由微软出版社于1988年首次出版,随后一直是这一领域的最佳入门参考书。1994年5月,鉴于其为微软Windows的成功所作的贡献,Petzold作为唯一的作家,成为7位由Windows Magazine及微软公司颁发的Windows先驱者奖(Windows Pioneer Award)得主之一。
1999年秋,微软出版社出版了Charles Petzold为普通读者而作的第一本书,名为Code:The Hidden Language of Computer Hardware and Software。那是一本独特的、关于数字信息特性以及计算机如何使用数字信息来工作的入门书。
方敏,现任微软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。业余喜欢掺和社区公益活动、希望工程、海外中文教育,喜欢和朋友相聚、读书、听音乐,跟家人一起周游世界。
赵勇,2007年加入微软,从事大型广告平台的开发。此前在IBM和美国Argonne国家实验室担任实习研究员。赵勇持有美国芝加哥大学的计算机博士学位,清华大学工学硕士和北京师范大学理学学士学位。

目录
第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程序
……
第Ⅱ部分 关于图的那些事儿
第Ⅲ部分 高级主题

序言
微软公司子1983年11月宣布开发Windows产品,到2009年推出的最新一代个人计算机操作系统Windows 7,已经整整走过了26个年头。Windows在世界范围内为众多领域提供了一个软件开发和应用的最普及的技术平台,各种各样的软件开发语言和工具不断扩展和更新。比起早期的windows编程来说,现在创建应用程序显然容易了许多,利用个人计算机编程所能发挥的作用和能力远远超出任何人可以想象的。
最新的Window7,无论从界面、内核实现或是功能都可以说发生了无数的变化,但依然保持了Windows程序的基本架构。对于windows的基本架构和原理的深刻理解,会帮助IT行业和软件开发领域的精英们充分利用Windows平台所提供的开发环境、开发语言和开发工具,起到举一反三、事半功倍的作用。由美国Windows程序设计和技术写作专家charles Petzold先生所编写的这本《Windows程序设计》被称为是该领域中的经典著作之一。虽然本书第5版本是在1998年出版的,但今天读起来仍感到内容广泛、论述简明、例程丰富、收益匪浅。

文摘
插图:

Windows程序设计

1981年秋,IBM.PC刚刚进入市场不久。当时PC(以及兼容机)上最流行的操作系统非MS-DOS(Microsoft Disk Operating System,微软磁盘操作系统)莫属。MS-DOS是一个非常简单的操作系统。用户通过MS.DOS提供的命令行界面发出指令,如dir或type,从而把应用程序加载到内存中来执行。对于应用程序员来说,MS-DOS仅仅提供了一套文件输入/输出(I/O)调用函数。对于其他任务,尤其是要在视频显示器上显示字符或图像时,应用程序就只能直接和PC的硬件打交道了。
鉴于内存及硬件方面的限制,在小型计算机上引入复杂的图形环境步履维艰。1983年1月,苹果公司发布了短命的Lisa,提出了一种不同于字符模式环境的新思路。而接踵而来在1984年1月发布的Macintosh则为图形环境确立了明确的标准。尽管目前Mac的市场占有率正在不断下降,它所建立的标准仍然经常被人们用来衡量后续其他图形环境的优劣。所有图形环境,包括:Macintosh以及Windows,都应当归功于施乐公司(Xerox)的帕洛阿托研究中心(PARC)在20世纪70年代中期所进行的开创性工作。
微软公司在1983年11月宣布了Windows(时间在Lisa之后Macintosh之前),两年之后,1985年11月Windows1.0正式推出发放市场。接下来的两年内,为了支持国际市场,并为更多的图形显示器及打印机硬件提供驱动程序(driver),微软连续发放了若干Windows1.0的更新升级。

内容简介
《Windows程序设计(第5版 珍藏版)》是一本经典的Windows编程圣经,曾经伴随着近50万Windows程序员步入编程殿堂,成长为IT时代的技术精英。
作为Windows开发人员的必备参考,涵盖基础知识和中高级主题,全面地介绍了Windows程序设计所涉及的细枝末节,旨在帮助读者从高屋见瓴的角度,建立完整的知识体系,为以后的职业生涯奠定良好的基础。全书共3部分23章。第1~12章着重介绍基础知识,第13~18章的主题为图形,第19~23章涉及更多高级主题。
《Windows程序设计(第5版 珍藏版)》适合任何层次的Windows程序员阅读和参考,是帮助他们梳理和建立Windows知识体系的理想读物。

点击链接进入英文版:
Programming Windows 5th Edition Book/CD Package

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多