PeekMessage与GetMessage的对比
相同点:
PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中
的消息派发出去。
不同点:
无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行
后面的语句(无消息则执行其它指令,有消息时一般要将消息派发出去,再执行其它
指令)。
GetMessage函数只有在消息对立中有消息时返回,队列中无消息就会一直等,直至下
一个消息出现时才返回。在等的这段时间,应用程序不能执行任何指令。
while(true)
{
DWORD ret = WaitForSingleObject(ShExecInfo.hProcess,15);
if(WAIT_OBJECT_0 == ret)/ {
break;
}
else if(WAIT_TIMEOUT == ret)
{
MSG msg;
PeekMessage(&msg,NULL,0,0,PM_REMOVE);
if(msg.message==WM_QUIT)
return false;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}