2

我们基于 MFC 的 Windows 应用程序具有取决于 shift 键状态的功能。Shift 公开了高级用户菜单命令,并且 Shift 拖动具有与正常拖动不同的行为。我正在探索我们支持 Windows 8 平板电脑的选项,似乎没有直接的方法来检测 Windows 8 软键盘 shift 键的状态。

使用GetAsyncKeyState(VK_SHIFT)(我们当前的方法)不会检测到这个键。

尝试检查所有传入的键盘消息,我发现:

  • Shift 键的单次隔离敲击不会产生键盘事件
  • 双击 shift 键会产生大写锁定键事件,与正常的大写锁定键事件无法区分
  • Shift 键的单次轻击,然后是另一个击键(例如,'q' 键)会产生一个 shift 键事件、击键和一个 shift 键(向上?)事件。

还有其他方法可以尝试检测软键盘 shift 键的状态吗?有没有其他人在 Windows 8 平板电脑软键盘上成功检测到此键盘的状态。

您插入这些设备的外接键盘都有正常的 shift 键。该问题是特定于软键盘的。

4

0 回答 0