Programming Windows

Charles Petzold

出版时间

1998-11-18

ISBN

9781572319950

评分

★★★★★
书籍介绍
这本书被无数读者奉为'Windows编程圣经',但它真正值得细看的,是它如何把一个看似复杂的GUI世界,拆解成'消息'这一件事。作者从消息队列、消息循环、窗口过程讲起,告诉你窗口的一切行为——绘图、响应按键——其实都是消息在驱动。这种'一切皆消息'的底层视角,让读者在真正理解Windows之前,先理解了Windows的思维方式。它适合学完C语言、想系统掌握Win32窗口与GDI绘图的人;也适合那些读过无数API文档却始终不得门径的开发者。当然,它也有争议:匈牙利命名法、冗长的基本操作、奇特的调用机制,在今天看来或许繁琐,但正是理解当年编程思想的钥匙。读它,不只是学一门技术,更是补上一堂关于'操作系统如何与程序对话'的课。
AI导读
核心看点
  • 详解Windows消息机制与窗口过程原理
  • 深入剖析GDI图形设备接口与绘图技术
  • 系统阐述Win32 API底层编程核心概念
读者共识
  • 被誉为Windows编程领域的经典圣经之作
  • 对句柄和设备上下文等概念讲解极为透彻
  • 虽内容略显老旧,但仍是入门必读基石
精彩摘录
  • "当windows程序开始执行时,windows首先会为该程序创建一个“消息队列”。该消息队列存放着应用程序可能创建的所有窗口消息。windows应用程序中一般都包含一小段为“消息循环”的代码,该段代码用于从消息队列中检索消息,并将其分发给相应的窗口过程(窗口回调函数)。其他消息则不经过消息队列直接发送给窗口过程。"
  • "客户区是一块应用程序可以自由绘图并向用户传达可视输出的区域。"
  • "真正有意义的东西发生在窗口过程中,正是窗口过程决定了窗口客户区的显示内容以及窗口如何对用户的输入做出响应。 应用程序通常不对窗口过程直接调用。窗口过程几乎总是由windows自身调用的。应用程序如果希望调用自身的窗口过程,可以使用SendMessage。"
  • "在windows中,窗口所发生的一切都通过消息的形式传递给窗口过程。 队列消息是指那些由windows放入程序的消息队列中的消息。在程序的消息循环中,消息被检索,然后投递到窗口过程中。非队列消息则是由windows窗口过程的直接调用产生的。队列消息主要由用户的输入产生,主要形式为按键信息。非队列消息包括队列消息以外的其他所有信息。通常由调用特定的windows函数引起。 从窗口过程的视角看,这些消息以有序,同步的方式来到的。在窗口过程处理某消息的过程中,程序不会被其他的消息突然中断。 虽然windows可以执行多线程。但是每个线程的消息队列仅为那些其窗口过程在该线程内执行的窗口进行消息处理,换"
  • "GDI的主要目的就是支持与设备无关的图形。windows程序应当毫无问题地在windows所支持的任何图形设备上输出。GDI提供了一些特殊的机制来彻底隔离应用程序和不同输出设备的特性。"
  • "图形输出设备分为两大类:光栅设备和矢量设备。大多数的PC输出设备是光栅设备,这也就意味着它们将图像表示成以点的形式构成的矩阵。该类输出设备有视频显示适配器,点阵打印机,激光打印机。矢量设备则使用线条来绘制图像。 GDI总体来说只是一个静态显示系统,对动画的支持很有限。如果是复杂动画,就用DirectX。"
  • "1.线条和曲线--------GDI支持直线,矩形,椭圆等 2.可被填充的封闭区域----------当一系列线条构成封闭区域时,可以使用画刷填充这个区域。 3.位图-------是一个二维的位数组,每个元素都对应显示设备上的一个像素 4.文本"
  • "映射模式和转换。图元文件是一个以二进制形式存储的GDI命令集合 设备环境包含了许多决定GDI函数如何工作的属性。这些属性使得GDI只需要提供少量参数(如起始坐标),而不需要提供windows在设备上显示对象时需要的所有信息。"
用户评论
读了前六章,了解了windows编程的基本机制
fundamental guide to windows programing and API
纯WINAPI.
圣经
GUI在当年也是很轰动的新技术了...
😭
号称Windows编程圣经,也是本人通读的一本书。
已经一点都不记得了
下载
收藏