alt + 的统一码是什么<arrow-key>?



我正在考虑创建自定义键盘布局。密钥映射到 unicode。我经常使用的一种快捷方式是alt + <arrow>alt + <backspace>.如何使用 unicode 获得相同的效果?

你不能。Unicode 是描述字符而不是键的标准。F1键甚至没有Unicode代码点,更不用说组合了。

键映射到 unicode。

这种说法是不真实的。 密钥映射到扫描码。 到字符集的任何映射都由操作系统执行,并非所有键或组合键都必须映射到字符。 操作系统可以进一步将键代码抽象为虚拟键代码,以便处理各种键盘布局和特殊键。

扫描码是 8 位值,扩展产生代码对 - 第一个为零 (NUL),表示第二个代码紧随其后,因此允许 510 个不同的代码。

请注意,扫描码通常适用于特定密钥,而不是生成的字符。 对于"字符"键,shift、alt、ctrl 等(它们有自己独特的扫描码)不会修改扫描码,因此"扩展"键(如功能键)可以充当修饰符。

通常,您不会在扫描码级别访问键盘,而是使用操作系统的键盘服务来确定键状态或字符映射。 例如,仅通过扫描码无法区分Nn- 必须考虑左移、右移、alt-gr 和当前大写锁定切换状态的关键状态。 扫描码访问主要供键盘驱动程序处理。

更高级别的键盘访问特定于操作系统。 例如,在Windows中,有一个广泛的API和键盘访问框架。 在这种情况下,感兴趣的可能是将虚拟键代码映射到 Unicode(存在此类转换)的toUnicode()toUnicodeEx()函数。 但是,Alt+ AFAIK没有翻译,在GUI消息循环中,您将获得带有VK_UPVK_DOWNVK_LEFTVK_RIGHT参数的WM_SYSKEYDOWN消息。 实际上,您将收到其他消息,但WM_SYSKEYDOWN是专门为Alt+序列发出的,因此您无需单独处理和维护Alt键WM_KEYDOWN/WM_KEYUP的状态。

相关内容

最新更新