高手们:
据我所知,在键盘上敲击任何一个键都会响应WM_KEYUP,WM_KEYDOWN,WM_CHAR等消息,但这只对一次敲击响应,但如果多次敲击同一个键,应该如何判断呢?
曾经我想过用WM_TIMER来做的,但担心WM_TIMER的响应会慢。
请问应该如何实现的?
谢谢!
据我所知,在键盘上敲击任何一个键都会响应WM_KEYUP,WM_KEYDOWN,WM_CHAR等消息,但这只对一次敲击响应,但如果多次敲击同一个键,应该如何判断呢?
曾经我想过用WM_TIMER来做的,但担心WM_TIMER的响应会慢。
请问应该如何实现的?
谢谢!
{
static long LastKey;
long CurrKey;
if(Playing)
{
if ( GetAsyncKeyState(key[0]))
{
MoveBrick(-1);
CurrKey = key[0];
}
else if(GetAsyncKeyState(key[1]))
{
RotateBrick();
CurrKey = key[1];
}
else if(GetAsyncKeyState(key[2]))
{
MoveBrick(1);
CurrKey = key[2];
}
}
if(CurrKey != 0 && CurrKey == LastKey)
{
SetTimer (hWnd, OnKeyT, 100, TimerProc); //加快控制
}
else
{
SetTimer (hWnd, OnKeyT, 200, TimerProc); //恢复原来速度
} LastKey = CurrKey;
}