深入GetMessage和PeekMessage[6]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 fireseed 的 blog

6.         当让步返回时,检视在当前任务中是否有计时器到期。如果是,创建一个wm_timer消息并返回。它不但发生在“返回一个wm_timer消息到窗体”的计时器上,同样也发生在“调用一个计时器处理过程”的计时器上。如要了解更多信息,请看在微软开发者网络(msdn)光盘(包括技术文章、windows文章、核心和驱动程序文章)中的文章“timers and timing in microsoft windows”(译者注:如果读者能够认可我的工作,我会不遗余力地翻译这篇关于计时器的文章)。

7.         如果这个应用程序没有计时器事件服务,并且一个应用程序正在被终止,代码将尝试去缩小图形设备界面(gdi)的本地内存堆。一些应用程序,比如绘图应用程序(像paintbrush™),为gdi分配了大量的堆内存。当应用程序终止时释放这些对象时,会使gdi本地内存堆被空闲空间填满而膨胀。为了恢复这些空闲的空间, getmessage/peekmessage处理中,localshrink将在这一点被调用于gdi的内存堆。这个被完成一次,(每次)一个应用程序将终止。

8.         在这一时刻,代码将分叉为两条路,一是代码任意的返回一个有效的消息,另一个是完全没有这个应用程序去处理的消息、事件,而代码最终会走哪条路决定于peekmessagegetmessage中的哪一个被调用。

本文关键:GetMessage; PeekMessage
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top