> вот чего я придумал: > > DWORD ms = GetTickCount(); > do {} while( (GetTickCount() - ms) < pause ); > > соответственно если (0xffffffff - pause) < ms - > возникает проблема..
Tebe chto ~49 dhei malo?? Ni figa sebe pauzha!
> может есть какие стандартные средства?
Vobzhe to Esli u tebia GUI to skoree vsego tebe nado obrabaryvat` messages vo vremia pausy.
Takchto sozdai event. A potom ispolzui :
MessgaeLoop(&hahdletoEvent,1,1000);
//eta foo waits for 1 sec a potom returns, i v to zhe vremia proishodit obrabotka messagei
int MessageLoop (
HANDLE* lphObjects, // handles that need to be waited on
int cObjects, // number of handles to wait on
DWORD dwmlsec)
{
while (TRUE)
{
DWORD result ;
MSG msg ;
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
return 1;
DispatchMessage(&msg);
}
result = MsgWaitForMultipleObjects(cObjects, lphObjects,
FALSE, dwmlsec, QS_ALLINPUT);
if (result == (WAIT_OBJECT_0 + cObjects))
{
continue;
}
else
if(WAIT_TIMEOUT == result)
{
return result;
}
else
{
return WAIT_OBJECT_0;
}
}
}
---
|