3
如果GetMessage(...)失败,消息是否不会从消息队列中删除?我问,因为当我有下面的循环,我最终将进入一个无限循环试图一遍又一遍处理同样的消息:GetMessage失败时会发生什么?
while(GetMessage(&msg, NULL, WM_SPEVENT, WM_SPUUIEVENT))
{
//Do something with my message. (Translate + dispatch perhaps, if I wanted)
}
因为我不处理的GetMessage失败的情况下,将循环卡住在一遍又一遍的相同的消息?这是为什么下面是实现一个循环?:
while((bRet = GetMessage(&msg, NULL, WM_SPEVENT, WM_SPUUIEVENT)) != 0)
{
if (bRet == -1)
{
//
}
else
{
//Do something with my message
}
}
这非常有道理。 Raymond Chen的这一点也是一个很好的资源 - 谢谢! – phillythompson 2014-10-07 14:54:03