更改重复键阈值c++; 我正在构建一个C++俄罗斯方块游戏(不是C++ .NET)。我觉得我的控制很奇怪。我想这样做,当用户按下其中一个箭头键时,按住它大约10毫秒将启动windows的重复功能。它默认设置为500毫秒左右,对我的游戏来说太慢了。如何设置从按键向下更改为重复按键向下的速度?不是每秒重复多少次

更改重复键阈值c++; 我正在构建一个C++俄罗斯方块游戏(不是C++ .NET)。我觉得我的控制很奇怪。我想这样做,当用户按下其中一个箭头键时,按住它大约10毫秒将启动windows的重复功能。它默认设置为500毫秒左右,对我的游戏来说太慢了。如何设置从按键向下更改为重复按键向下的速度?不是每秒重复多少次,c++,winapi,native,C++,Winapi,Native,谢谢 *我要做的是将重复延迟改为短延迟 在键盘设置的“控制面板”中有重复频率,我该如何设置?通常情况下,您要做的是不响应受正常按键重复设置约束的WM\u CHAR消息,而是查找和WM\u KEYUP,并根据运行的计时器采取措施。例如,如果您将计时器设置为每50毫秒启动一次,那么您可以每50毫秒重复一次,并且在收到WM\u KEYDOWN消息时仍然会立即执行第一个操作。通常您会这样做,而不是对受正常按键重复设置约束的WM\u CHAR消息做出反应,您将查找和WM_KEYUP,并根据运行的计时器采取

谢谢

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


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

通常情况下,您要做的是不响应受正常按键重复设置约束的
WM\u CHAR
消息,而是查找和
WM\u KEYUP
,并根据运行的计时器采取措施。例如,如果您将计时器设置为每50毫秒启动一次,那么您可以每50毫秒重复一次,并且在收到
WM\u KEYDOWN
消息时仍然会立即执行第一个操作。

通常您会这样做,而不是对受正常按键重复设置约束的
WM\u CHAR
消息做出反应,您将查找和
WM_KEYUP
,并根据运行的计时器采取行动。例如,如果您将计时器设置为每50毫秒启动一次,那么您可以每50毫秒重复一次,并在收到
WM\u KEYDOWN
消息时立即执行第一个操作。

根据MSDN,您还可以使用,并调用use SPI\u SETKEYBOARDSPEED,SPI\u SETKEYBOARDDELAY。

根据MSDN,您还可以使用,并调用use SPI_SETKEYBOARDSPEED,SPI_SETKEYBOARDDELAY。

void Key_Set() { 德沃德·奥尔德=0

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


SystemParametersInfo(SPI_SETKEYBOARDDELAY,0, &old, 0);
}无效键集() { 德沃德·奥尔德=0

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


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

}

根据,它声明WM_KEYDOWN不处理重复,但WM_CHAR处理重复。你可能已经知道这一点,但我想我应该在这里提到它,因为他们正在讨论这个话题。这个问题与你问的另一个问题非常相似:根据,它表明WM_KEYDOWN不处理重复,但WM_CHAR处理重复。你可能已经知道这一点,但我想我应该在这里提一下,因为他们正在讨论这个话题。这个问题与你问的另一个问题非常相似:虽然可以通过这种方式更改用户的设置,我会发现单个应用程序修改我喜欢的键盘重复设置配置方式是不可接受的。只要确保在应用程序频繁关闭时重置旧设置,不要这样做。如果有任何应用程序更改了我的个人设置,或者在你的应用程序还在运行时我切换到另一个应用程序,我会非常生气?@Greg,GMan-强大的力量带来巨大的责任。你只需要相信他会对用户使用侵入性最小的解决方案。Win32中有数百个这样的实例。Greg提出了他的论点,我认为这是一个很好的论点。虽然可以通过这种方式更改用户的设置,但我发现单个应用程序修改我喜欢的键盘重复设置配置方式是不可接受的。请确保在应用程序频繁关闭时重置旧设置,不要这样做。如果有任何应用程序更改了我的个人设置,或者在你的应用程序还在运行时我切换到另一个应用程序,我会非常生气?@Greg,GMan-强大的力量带来巨大的责任。你只需要相信他会对用户使用侵入性最小的解决方案。Win32中有数百个这样的实例。Greg提出了他的论点,我认为这是一个很好的论点。也就是说,这可能是一个比以编程方式更改系统设置更好的实践。也就是说,这可能是一个比以编程方式更改系统设置更好的实践。不要这样做。为什么你的应用程序如此重要,以至于要更改我电脑上的设置?正如格雷格所展示的那样,只需使用正确的信息。谢谢。如果您对应用程序拥有完全控制权,则不应使用此选项,但这不是我的情况。有人开发了一个允许脚本编写的特定应用程序,这是修复它的唯一方法。当到达编码错误的黑框位置时,切换到“无重复”,并在其存在后返回。我们不是在一个完美的世界里,不要这样做。为什么你的应用程序如此重要,以至于要更改我电脑上的设置?正如格雷格所展示的那样,只需使用正确的信息。谢谢。如果您对应用程序拥有完全控制权,则不应使用此选项,但这不是我的情况。有人开发了一个允许脚本编写的特定应用程序,这是修复它的唯一方法。当到达编码错误的黑框位置时,切换到“无重复”,并在其存在后返回。我们不是在一个完美的世界里。