gpt4 book ai didi

windows - 什么是 Win32 虚拟键码 0xFF 用于什么地方?它是否记录在某处?

转载 作者:可可西里 更新时间:2023-11-01 09:22:04 26 4
gpt4 key购买 nike

我有一台上网本,它的触摸板上支持多点触控手势。当您用三指向左或向右滑动时,它会向事件窗口发送一些消息——对于某些窗口,这意味着发送页面向上​​/向下按键。

根据 Spy++,向右滑动发送的实际消息是:

  • WM_KEYDOWN,虚拟键 = 0xFF
  • WM_KEYDOWN,虚拟键 = VK_NEXT
  • WM_KEYUP,虚拟键 = VK_NEXT
  • WM_KEYUP, 虚拟键 = 0xFF

我的问题是:这个 0xFF 虚拟键码是什么,它是否记录在某处?在 winuser.h 中没有对应的#define。

最佳答案

0xFF 是键盘布局代码中用来表示“无映射”的值。 Windows DDK/SDK 的 kbd.h 中是这样定义的:

#define VK__none_   0xFF

每个没有指定含义的扫描码通过宏映射到这个虚拟键码。比如扫码0没有映射:

#define T00 _EQ(                           _none_                    )

如果 Fn 键产生 0xFF,那是因为 Fn 键的扫描码没有映射,而不是因为 0xFF 表示 Fn 键。 Fn 键没有标准的扫描码;它取决于制造商,因此不太可能映射到标准键盘布局中任何有意义的内容。

至于为什么要发送 VK 0xFF:可能不是。特定于制造商的键和按钮有时会(从硬件)发送未映射到任何内容的扫描码,但可以通过扫描码检测到。当制造商的软件检测到 key 时,它会采取一些行动,例如发送 VK_NEXT(但行动可能取决于设置或哪个应用程序具有焦点)。获得焦点的应用程序也会看到按键,但通常什么都不做,因为没有针对该扫描码的映射(wParam 为 0xFF)。

您可以在 WM_KEYDOWN 消息的 lParam 的第 16-23 位中找到扫描码。

关于windows - 什么是 Win32 虚拟键码 0xFF 用于什么地方?它是否记录在某处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4718069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com