简单说明PeekMessage和GetMassage的区别
发布时间
阅读量:
阅读量
其实看看他们的函数用法就知道区别:
GetMessage:
while ((pMsg = GetMessage(&msg, NULL, 0, 0)) != NULL)
{
TranslateMsgToUsText(&pMsg);
SendMsgToUsMsg(&pMsg);
}
if (msg.wParam) return msg.wParam;
PeedMessage:
循环开始于真
{
若调用 PeekMessage 函数查看消息(参数分别为指针 &msg、空指针、整型常量 0、整型常量 0 和 PM_Remove 标志)成功返回
{
若当前消息类型为 WM_QUIT 标识符
{
转出此循环
}
执行 TranslateMessage 函数翻译消息
随后执行 DispatchMessage 函数分发消息
}
否则
{
// 实现其他相关功能的具体行代码
}
}
返回 msg.wParam 值。
因此,分两种情况:
情况1:在存在待处理的消息时,在使用GetMassage和PeekMessage进行操作时均能处理这些消息,并且表现一致。
情况2:当消息队列为空时,在调用GetMessage之前不做任何操作,并一直等待直到接收下一条消息;而调用PeekMessage时则会进入else语句块中的代码,在处理完当前的消息后转向处理下一条消息。
全部评论 (0)
还没有任何评论哟~
