键盘输入工作原理

本文详细介绍了Windows 窗体中键盘输入的工作原理,包括按键类型、键盘事件顺序、键的预处理以及如何处理键盘消息。在Windows 窗体应用程序中,键盘事件通常用于处理键盘输入,但更复杂的方案需要理解键盘消息的处理方式。键盘事件的顺序为:KeyDown、KeyPress(在按键保持时重复发生)、KeyUp。开发者可以通过重写键盘方法在消息到达控件之前进行预处理,实现自定义的键盘输入处理。
摘要由CSDN通过智能技术生成
Windows 窗体编程
键盘输入工作原理

Windows 窗体通过引发键盘事件来处理键盘输入以响应 Windows 消息。大多数 Windows 窗体应用程序都通过处理键盘事件来以独占方式处理键盘输入。但是,必须了解键盘消息的工作方式,才能实现更高级的键盘输入方案(如在按键到达控件之前截获它们)。本主题描述 Windows 窗体能够识别的按键数据的类型,并概述键盘消息的传送方式。有关键盘事件的信息,请参见使用键盘事件

按键的类型

Windows 窗体将键盘输入标识为由按位 Keys 枚举表示的虚拟键代码。使用 Keys 枚举,可以综合一系列按键以生成单个值。这些值与 WM_KEYDOWN 和 WM_SYSKEYDOWN Windows 消息所伴随的值相对应。可通过处理 KeyDownKeyUp 事件来检测大多数物理按键操作。字符键是 Keys 枚举的子集,它们与 WM_CHAR 和 WM_SYSCHAR Windows 消息所伴随的值相对应。如果通过组合按键得到一个字符,则可以通过处理 KeyPress 事件来检测该字符。或者,可以使用由 Visual Basic 编程接口公开的 Keyboard 来发现已按下的键并发送它们。有关更多信息,请参见访问键盘

键盘事件的顺序

正如上面列出的那样,在一个控件上可能出现三个与键盘相关的事件。以下顺序是发生这些事件的常规顺序:

  1. 用户按“a”键,该键将被预处理和调度,而且会发生 KeyDown 事件。

  2. 用户按住“a”键,该键将被预处理和调度,而且会发生 KeyPress 事件。

    在用户按住某个键时,此事件会发生多次。

  3. 用户松开“a”键,该键将被预处理和调度,而且会发生 KeyUp 事件。

键的预处理

像其他消息一样,键盘消息是在窗体或控件的 WndProc 方法中处理的。但是,在处理键盘消息之前,PreProcessMessage 方法会调用一个或多个方法,这些方法可被重写以处理特殊的字符键和物理按键。您可以重写这些方法,以便在控件处理消息之前检测并筛选某些按键。下表按照方法出现的顺序列出了正在执行的操作以及所出现的相关方法。

KeyDown 事件的预处理

操作 相关方法 说明

检查命令键(如快捷键或菜单快捷键)。

ProcessCmdKey

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值