C++检查键是否被按下,而不是按住

标签 c++ windows key

我有以下代码:

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/

相关文章:

使用 "days"的 C++ 数据类型和函数

c++ - 清除缓冲区-Winsock

linux - 在 Windows 机器上安装 ubuntu 时出现问题

javascript - 将键和值对分成两个数组

linux - sshd 上的算法密码

arrays - 在Perl 6中,我可以使用数组作为哈希键吗?

c++ - ITK更新函数

c++ - 按值返回的变量的相同地址

html - 隐藏仅在 Windows 上显示的无用滚动条

java - 更好的性能: WMI vs SNMP?