G
golden_future
Unregistered / Unconfirmed
GUEST, unregistred user!
下图说明GetMessage内部如何实现.<br>从中可以看出SendMessage,PostMessage,键盘鼠标消息,定时器消息等的优先级.<br><br> GetMessage<br> |<------------------<----------------------<---|<br> | |<br> (没) |---------------------| |<br> <--------| 是否有发送来的消息 | <----| |<br> | |----------|----------| | |<br> | | ( 有) | |<br> | |---------|-----------| | |<br> | | 处理此消息处理完时 | | |<br> | | GetMessage 没返回 | | |<br> | |----------|----------| | |<br> | |-------->-------->| |<br> | |<br> |------------------->| |<br> | |<br> (没) |---------------------| |<br> |<-------| 是否有投递来的消息 | |<br> | |---------------------| |<br> | | (有) |<br> | | (出口1) |<br> | |---------------------| |---------------------| |<br> | | 处理投递来的消息 |---------->| GetMessage 返回TRUE | |<br> | |---------------------| |---------------------| |<br> | |<br> |----------------->| (出口2) |<br> (没) |---------------------| (有) |---------------------| |<br> <--------| 是否有WM_QUIT消息 |---------->| GetMessage 返回FALSE| |<br> | |---------------------| |---------------------| |<br> | |<br> |------------------| |<br> | (出口3) |<br> (没) |---------------------| (有) |---------------------| |<br> <--------| 是否有I/O输入消息 |---------->| GetMessage 返回FALSE| |<br> | |---------------------| |---------------------| |<br> | |<br> |----------------->| |<br> | (出口4) |<br> (没) |----------------------| (有) |---------------------| |<br> <--------| 是否有WM_PAINT 消息|--------->| GetMessage 返回TRUE | |<br> | |----------------------| |---------------------| |<br> | |<br> |---------------->| |<br> | (出口5) |<br> (没) |----------------------| (有) |---------------------| |<br> <--------| 是否有WM_TIMER消息 |--------->| GetMessage 返回TRUE | |<br> | |----------------------| |---------------------| |<br> |---------------->| |<br> | |<br> |----------------------| |<br> | 线程被阻塞 | |<br> |----------------------| |<br> | (被唤醒) |<br> |->----------------------->-------------->--------->|