CWaitCursor wait;MSG msg;
DWORD dwStartTime = 0, dwEndTime = 0;
dwStartTime = dwEndTime = GetTickCount();
while( (dwEndTime - dwStartTime) < 3000 )//等待5秒,判断是否超时
{
while( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
dwEndTime = GetTickCount();
}
这样不会出现3秒的沙漏型,这是什么原因呢?
DWORD dwStartTime = 0, dwEndTime = 0;
dwStartTime = dwEndTime = GetTickCount();
while( (dwEndTime - dwStartTime) < 3000 )//等待5秒,判断是否超时
{
while( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
dwEndTime = GetTickCount();
}
这样不会出现3秒的沙漏型,这是什么原因呢?
while( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
换上Sleep(100);
DWORD dwStartTime = 0, dwEndTime = 0;
dwStartTime = dwEndTime = GetTickCount();
while( (dwEndTime - dwStartTime) < 3000 )//等待5秒,判断是否超时
{
while( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
wait.Restore();
dwEndTime = GetTickCount();
}