首页 > 解决方案 > 使用 waitKeyEx 时如何用箭头键检测 Shift 或 CTRL?

问题描述

视窗 10 x64。开放式CV 4.0.1

我一直在使用waitKey,现在在opencv 4.0.1下,4个箭头键的waitKeyEx成功,但是当我用SHIFT或CTRL键同时按下它们时,从waitKeyEx返回的代码显然没有改变(0x00250000-左,0x00260000 - 无论是否按下 shift 或 CTRL,从 waitKeyEx() 返回 Up 等)

标签: c++opencv

解决方案


似乎在 waitKeyEx() 返回后调用 GetKeyState 就可以了。我已经尝试过通过

int nRet = GetKeyState(VK_SHIFT);

(在调用 waitKeyEx() 后立即调用,如果按下左 shift 键,则返回 -127,右 -128,0 也不。我没有尝试过 CNTRL。我在http://forums.codeguru.com/中看到showthread.php?447587-Detecting-if-Control-or-Shift-key-was-down-when-key-pressed它有一个警告,它不是实时的,但从经验上看,它似乎对 waitKeyEx 有用( )


推荐阅读