GetMessage/PeekMessage的执行次序
1 先去程序(线程)消息队列中检查有没
有消息如果有消息,检查 指定条件
(窗口句柄ID,范围)是否满足条件,
如果满足条件取出消息。
2 如果程序(线程)消息队列中没有消息
向系统队列中获取 本应用程序的消息,
系统队列的当前消息是 本应用程序的,
系统转发 消息 到程序(线程)的消息
队列,然后GetMessage到程序(线程)
的消息队列中获取消息,返回。
3 如果系统的消息队列中也没有 本应用程
序相关的消息,检查当前窗口有没有需要
重新绘制的区域,如果有需要重新绘制
的区域就发送一个消息(WM_PAINT),并
将这个消息放入队列,取出并返回。
4 如果没有需要重新绘制的区域,检查一下
有没有到时间的定时器,如果有到时间的
定时器那么发送一个消息(WM_TIMER).
5 如果以上都没有整理一下程序的资源,内
存等...
6 GetMessage函数等待下一条消息(阻塞)
PeekMessage返回FALSE,交出程序的控制权
VC/Win32 GetMessage/PeekMessage的执行次序
最新推荐文章于 2019-05-17 11:12:45 发布