未分類 1 4 月 2021 请教一下 C++如何判断键盘或者某个按键是否按下后松开 请教一下 C++如何判断键盘或者某个按键是否按下后松开 資深大佬 : ESP 0 最近在做一个项目,需要在用户按下某个按键之后仅执行一次,按住无效。 我的想法是检测按键是否抬起,如果没抬起就不执行。 网上搜了很多都没找到解决方案,请问大家有没有好的建议? 大佬有話說 (12) 資深大佬 : across 查系统 API,key_up 事件监测https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keyup 主 資深大佬 : ESP @across 感谢建议 資深大佬 : across @ESP 你这个检测按下也没问题key down (按下)和 key pressed (按住) 都有区分。 資深大佬 : ysc3839 在什么操作系统下运行?是否有用第三方框架? 資深大佬 : 786375312123 qt 和 unix 还有 win32 都有相关的处理方式 資深大佬 : 3dwelcome 不是 win32 平台吧,要不然一个 WM_KEYDOWN 就搞定的事情,弄那么复杂。如果是全部自己写,那么判断一下按键重复时间,两者太接近就直接忽略掉后面的事件。 資深大佬 : JerryV2 按住无效,请注意 WM_KEYDOWN 的 LPARAM 参数,0-15 bits 表示重复次数 主 資深大佬 : ESP @ysc3839 windows 的 win32 dll 中,没有用到任何框架 主 資深大佬 : ESP @3dwelcome 感谢建议 主 資深大佬 : ESP @JerryV2 感谢提醒,看来主流的意见就是使用 WM_KEYDOWN 或者 WM_KEYUP 。我正在看怎么使用。 資深大佬 : nightwitch 这和 C++本身没关系。外设的 IO 事件都是由操作系统负责处理,查目标平台的 API 即可 資深大佬 : LZSZ 这个不可能搜索不到