首页 > 代码库 > KeyDown和KeyPress的区别
KeyDown和KeyPress的区别
虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDo
wn返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回字符值.
因此在KeyDown中返回的是键盘的代码, 而KeyPress返回的是ASCII字符. 所以根据你的目的
, 如果只想读取字符, 用KeyPress, 如果想读各键的状态, 用KeyDown.
说KeyDown是按下, KeyPress是按下并松开, 是不对的. 如果你一直按着键呢? 这时不断地产
生KeyDown和KeyPress.
OnKeyPress 只能在单个键被按下才触发的,而且对于shift, alt, ctrl 和 这些
组合件,比如ctrl + f1是不会触发这个消息的。 他处理的消息可能是 WM_CHAR
OnKeyDowm 就可以捕获这些全部的按键。
他实际是处理 WM_KEYDOWN消息。
可以理解为 OnKeyDown是OnKeyPress的超集。
有一个区别是keypress是对简单字符的反应
不会对shift,F1的功能按钮有反应
keydown则都可以有反应
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。