在 memo里边keypress 与 keydown 
我的理解没有区别??
大家说呢?

解决方案 »

  1.   

    keypress比Keydown
    触发早,KeyPress
    只在按下时触发,
    而KeyDown只要按键没有
    弹起就触发
      

  2.   

    按一个键超过0.5秒后,键盘会自动产生发出多个,触发多次KeyPress,但只有一个KeyDown事件。
      

  3.   

    我测试了下,2,3楼好像不对啊!!!
    press和down是一对的,并且是down先触发。
    但是还是没找到他们的区别
      

  4.   

    同意1楼的意见,大部分功能键不会触发press事件
      

  5.   

    这个问题的确比较复杂
    我在D7上,keypress比keydown 触发早
    5楼的兄弟,怎么会down比press 早???
      

  6.   

    貌似是先触发keydown,再keypress,最后是keyup难道是我记错了??回头我再研究研究
      

  7.   

    keydown由KEY_DOWN触发,包含键盘上的每个键。
    keypress由KEY_PRESS消息触发,不包含功能键,一直按下键时根据控制面板设置的键重复时间,反复发送。消息触发先后KEY_DOWN   KEY_PRESS  KEY_UP
      

  8.   

    虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDown返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回字符值. 因此在KeyDown中返回的是键盘的代码, 而KeyPress返回的是ASCII字符. 所以根据你的目的, 如果只想读取字符, 用KeyPress, 如果想读各键的状态, 用KeyDown. 
    说KeyDown是按下, KeyPress是按下并松开, 是不对的. 如果你一直按着键呢? 这时不断地产生KeyDown和KeyPress.
    谁先谁后好像没多大区别。
      

  9.   

    虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDown返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回字符值. 因此在KeyDown中返回的是键盘的代码, 而KeyPress返回的是ASCII字符. 所以根据你的目的, 如果只想读取字符, 用KeyPress, 如果想读各键的状态, 用KeyDown. 
    说KeyDown是按下, KeyPress是按下并松开, 是不对的. 如果你一直按着键呢? 这时不断地产生KeyDown和KeyPress.
    先后顺序应该在ms级,不用过分操心。
      

  10.   

    KeyDown 按下
    KeyUp 弹起
    KeyPress由Windows产生,Windows检测到按键按下后,每隔一定时间产生KeyPress一般用KeyPress处理字符按键,用KeyDown或KeyUp处理系统按键
      

  11.   

    按单步跟踪,好象是先down再press