Я создал основное окно, которое обрабатывает виртуальные ключи. Регистр VK_UP
инициализирует таймер, который считает от 9 в обратном направлении. Таймер можно остановить, если достигнут 0 или нажата VK_DOWN
. Проблема в том, что когда я инициализирую таймер с помощью VK_UP
, программа останавливается, пока таймер не достигнет 0. Как я могу прервать (остановить) таймер с помощью VK_DOWN
?
Как всегда, я пробовал поиск, но безрезультатно.
РЕДАКТИРОВАТЬ: Вот процедура окна:
unsigned Seconds( 9 );
case WM_KEYDOWN:
{
switch( wParam )
{
case VK_UP:
{
while( Seconds > 0 )
{
wait( 1 );
Seconds--;
}
}
break;
}
break;
}
Вот метод wait( )
, который я использовал выше:
void wait( unsigned TotalSeconds )
{
clock_t Wait( clock( ) + ( TotalSeconds * CLOCKS_PER_SEC ) );
while( clock( ) < Wait )
{
Sleep( 1 );
}
}
Спасибо.