while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
if (hwndDlgModeless == (HWND) NULL ||
!IsDialogMessage(hwndDlgModeless, &msg) &&
!TranslateAccelerator(hwndMain, haccel,
&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
其中的GetMessage就是负责从消息队列中取得一个消息,它的原型如下
GetMessage( LPMSG lpMsg, HWND hWnd,UINT wMsgFilterMin, UINT wMsgFilterMax )