码迷,mamicode.com
首页 > 其他好文 > 详细

KeyDown和KeyPress的区别

时间:2014-08-08 01:49:15      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:ar   代码   res   har   简单   on   函数   sp   

    虽然从字面理解, 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则都可以有反应 

KeyDown和KeyPress的区别,布布扣,bubuko.com

KeyDown和KeyPress的区别

标签:ar   代码   res   har   简单   on   函数   sp   

原文地址:http://www.cnblogs.com/spiritofcloud/p/3898379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!