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