我正在构建一个 c++ 俄罗斯方块游戏(不是 c++ .Net)。我觉得我的控制很奇怪。我想这样当用户按下箭头键之一时,按住它大约 10ms 将启动窗口的重复功能。默认设置为 500ms 左右,对于我的游戏来说太慢了。如何设置它从 keydown 变为 repeat keydown 的速度?不是重复多少次/秒。
谢谢
*我想要做的是将重复延迟更改为短
在键盘设置的控制面板中有重复率,我该如何设置?
通常,您将为此做的不是对WM_CHAR
受正常键重复设置影响的消息做出反应,而是查找WM_KEYDOWN
and ,并根据您正在运行的计时器WM_KEYUP
采取行动。例如,如果您将计时器设置为每 50 毫秒触发一次,那么您可以每 50 毫秒重复一次,并且在收到消息时仍然立即执行第一个操作。WM_KEYDOWN
根据 MSDN,看起来您也可以使用SystemParametersInfo 函数,并调用使用 SPI_SETKEYBOARDSPEED、SPI_SETKEYBOARDDELAY。
void Key_Set() { DWORD 旧 = 0;
SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &old, 0);
SystemParametersInfo(SPI_SETKEYBOARDDELAY,0, &old, 0);
}