我已经创建了一个处理虚拟键的基本窗口。案例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 );
}
}
感谢。
答案 0 :(得分:2)
使用实时计时器,而不是计数循环。查看SetTimer()。理解Windows的事件驱动编程模型非常重要,任何关于Windows编程的书都会很好地涵盖它,比如Petzold的。