【问题标题】:Using keypress to switch a bool使用按键切换布尔值
【发布时间】:2011-06-13 11:46:09
【问题描述】:

我正在编写一个 Windows C++ 应用程序,我想检测一个按键(在本例中,使用字母“S”)。当按键被按下时,程序应该打开或关闭一个布尔值(取决于它的当前状态)。

我知道在控制台应用程序中可以使用cin.get,但我不熟悉 Win32 API。我还想确保按下键时,事件只注册一次,即如果用户按下“S”但按住键一段时间,程序应该只检测“S”;不是“SSSSSS”。

【问题讨论】:

  • 请解释为什么您不希望自动重复工作。这是你在写的游戏吗?
  • 这是我正在写的一个科学实验。我正在尝试打开或关闭事件。我不想意外地让事件同时打开和关闭,按下按钮时只有一次。

标签: c++ winapi keypress boolean


【解决方案1】:

所以你有一个 Windows 消息循环,对吗?捕获WM_KEYDOWN 并检查它是否处于自动重复状态。

但我猜你实际上是在使用一个框架,无论是 MFC、QT 还是其他东西。该框架将包装您的 Windows 消息循环并允许您捕获关键事件,但如果您希望我们告诉您如何操作,您必须说明您正在使用什么框架。

【讨论】:

  • 这可能是个愚蠢的问题,但我不知道什么是框架...如何找出我正在使用的框架?我已经开始使用一个工作程序并正在对其进行编辑...
  • 考虑:1) 告诉我们您正在使用什么编译器/开发环境。我猜是 Visual Studio 版本之一,但是哪个? 2)学习基础知识。查看不同项目类型 (msdn.microsoft.com/en-us/library/6765tta0(v=vs.71).aspx) 的各种结果,并与您的示例项目进行比较。 3) 接受超过 35% 的关于 SO 的问题的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2017-08-05
  • 1970-01-01
  • 2017-09-27
  • 2021-02-24
  • 2012-07-21
相关资源
最近更新 更多