我有以下代码:
for (int i = 0; i < 1;) {
if (GetKeyState(VK_SHIFT) & 0x8000)
{
cout << "op";
}
}
如果按住 Shift 键,这将打印出 op
,实际上,如果您按住该键,它会向输出发送垃圾邮件。
这就是我想要的:
当您按下/按住一个键而不是发送垃圾邮件时,该程序会打印一次,而再次打印的唯一方法是松开该键并再次按下。无论您按住该键多长时间,程序只会执行一次以下代码,除非您再次按下该键。
如何让我的代码执行此操作?
最佳答案
当您检测到“按键按下”事件时,您可以简单地将 bool
设置为 true
,然后仅将其设置回 false
一旦您检测到“按键”事件。这样您就可以知道键是否已经按下,并且只有在键未处于该状态时才报告它已被按下。
关于C++检查键是否被按下,而不是按住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51225203/