« 里程碑 | 返回首页 | 阳朔归来 »

《我的编程感悟》的一处技术错误

今天收到一封读者来信,指出一处非常明显的技术错误,真的是非常惭愧。在第 118 页讲解 Windows 消息处理时,对于 UpdateWindow 的解释是明显错误的。

书上是这样写的,“这里,UpdateWindow 通过调用 PostMessage 把 WMPAINT 消息推入消息队列实现的。”这是一个明显的错误,UpdateWindow 是直接处理 WMPAINT 而非把消息放入队列。当初是一个笔误,有朋友看过初稿时曾经指出这个错误。我当时觉得自己不会有这种笔误的,看了稿子后发现果真如此,就立刻改过来了。可能是跟编辑来回交换稿子的时候又错误的提交了有误的稿。

收到这封 email 的时候,一开始也是不太相信,查了一下自己的书,果真被印成了白字黑字。惭愧啊。希望下次重印的时候能够修正过来。

Comments

SendMessage 就是直接处理啊
那不就等于 UpdateWindow就是直接处理
PostMessage 才是 放入队列

这种破烂书,还想重印,你他妈想出名想疯了吧。

相比于那位读者的说法,你书里的说法更加正确。那位读者的说法是完全错误的。
UpdateWindow确实是将`WM_PAINT`消息放入队列。InvalidateRect使用PostMessage,UpdateWindow使用SendMessage。
UpdateWindow的效果和`SendMessage(WM_PAINT)`一样。

Post a comment

非这个主题相关的留言请到:留言本