Knowledge Base Nr: 00238 messageloop.cpp - http://www.swe-kaiser.de
Downloads:
Win32: Messageloop abarbeiten
//einfache messageloop (getmessage blockiert/peekmessage nicht)
MSG msg;
while (::GetMessage(&msg, NULL, 0, 0)) /* die Nachrichtenschleife abarbeiten*/
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
MSG msg;
while (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) /* die Nachrichtenschleife abarbeiten*/
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
//messageloop mit timeout
DWORD dwNow = ::GetTickCount();
MSG msg;
while (::GetMessage(&msg, NULL, 0, 0)) /* die Nachrichtenschleife abarbeiten*/
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
pWnd = FindWindow(pszClass, pszTitle);
if (pWnd)
break;
//timeout?
if (::GetTickCount() - dwNow > nWait)
return -3;
Sleep(10);
}