浅析OnKeyPress事件和OnKeyDown、OnKeyUp事件

本文详细介绍了OnKeyPress、OnKeyDown和OnKeyUp三个键盘事件的区别和应用场景。OnKeyPress在用户按下可打印字符时触发,主要用于字符输入处理;OnKeyDown在按键按下时触发,OnKeyUp在按键释放时触发,两者常用于处理特殊键和组合键。文中通过代码示例展示了如何使用这些事件处理键盘输入,并提到了虚拟键码的概念。
摘要由CSDN通过智能技术生成
OnKeyPress事件


    OnKeyPress事件是在用户按下键盘上任何一个可打印的字符时发生,只有能接收键盘输入的组件才有OnKeyPress事件。我们常常利用OnKeyPress事件截取在编辑框和组合框组件中所输入的击键,还可以立即测试击键的有效性或在字符输入时对其进行一定的格式处理。


    例如,在TEdit组件上捕获OnKeyPress事件,判断输入的是否是小写字母,如果是,将其转换为大写字母,代码如下:


    void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)


{


    if (Key >= 'a' && Key <= 'z')


    {


       Key += 'A' - 'a';


    }


}


将Key的值改变为0时可取消击键,这样一来对象便接收不到字符,我们可以利用这个特点来屏蔽某些字符。例如,有时候我们只允许用户输入数字,则加入如下代码:


void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)


{


    if (Key < '0' || Key > '9')


    {


        Key = 0;//取消刚才输入的字符


    }


}


注意:OnKeyPress事件可以引用任何可打印的键盘字符,一个来自标准字母表的字符或少数几个特殊字符之一的字符与 CTRL 键的组合,以及 ENTER 或 BACKSPACE 键,但它并不能识别功能键(F1~F12),上下左右键,Shift键,Ctrl键以及Alt键等特殊控制键或者是组合键,要捕获这些键可以采用OnKeyDown和OnKeyUp事件。


 


OnKeyDown/OnKeyUp事件


    当按下某个键不放时,产生OnKeyDown事件;释放按键时,则产生OnKeyUp事件。虽然 OnKeyDo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值