> 消息的接收主要有三个函数:
> 0x1. GetMessage
> 0x2. PeekMessage
> 0x3. WaitMessage
GetMessage
GetMessage函数从调用线程的消息队列中检索消息。该函数分派传入发送的消息,直到发布的消息可供检索为止。
// 函数原型
BOOL GetMessage(
LPMSG lpMsg, // 消息信息
HWND hWnd, // 接收哪个窗口的消息
UINT wMsgFilterMin, // 用于过滤消息(范围)
UINT wMsgFilterMax // 用于过滤消息(范围)
);
wMsgFilterMin 和 wMsgFilterMax用于指定消息的范围。
如果hWnd为空,则获取该函数应用程序的的任意窗口消息。
PeekMessage
PeekMessage函数分派传入发送的消息,检查线程消息队列是否有发送的消息,并检索消息(如果存在)。PeekMessage函数在返回之前不等待消息被发布。
// 函数原型
BOOL PeekMessage(
LPMSG lpMsg, // 消息信息
HWND hWnd, // 接收哪个窗口的消息
UINT wMsgFilterMin, // 用于过滤消息(范围)
UINT wMsgFilterMax, // 用于过滤消息(范围)
UINT wRemoveMsg // 删除选项
);
WaitMessage
当一个线程的消息队列中没有其他消息时,WaitMessage函数将控制权交给其他线程。WaitMessage函数挂起线程,直到在线程的消息队列中放置新消息时才返回
BOOL WaitMessage(VOID);