2

我正在构建一个 c++ 俄罗斯方块游戏(不是 c++ .Net)。我觉得我的控制很奇怪。我想这样当用户按下箭头键之一时,按住它大约 10ms 将启动窗口的重复功能。默认设置为 500ms 左右,对于我的游戏来说太慢了。如何设置它从 keydown 变为 repeat keydown 的速度?不是重复多少次/秒。

谢谢

*我想要做的是将重复延迟更改为短

在键盘设置的控制面板中有重复率,我该如何设置?

4

3 回答 3

8

通常,您将为此做的不是对WM_CHAR受正常键重复设置影响的消息做出反应,而是查找WM_KEYDOWNand ,并根据您正在运行的计时器WM_KEYUP采取行动。例如,如果您将计时器设置为每 50 毫秒触发一次,那么您可以每 50 毫秒重复一次,并且在收到消息时仍然立即执行第一个操作。WM_KEYDOWN

于 2009-09-17T21:29:13.543 回答
1

根据 MSDN,看起来您也可以使用SystemParametersInfo 函数,并调用使用 SPI_SETKEYBOARDSPEED、SPI_SETKEYBOARDDELAY。

于 2009-09-17T21:35:59.170 回答
-4

void Key_Set() { DWORD 旧 = 0;

SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &old, 0);


SystemParametersInfo(SPI_SETKEYBOARDDELAY,0, &old, 0);

}

于 2009-09-17T21:44:35.583 回答