WM_SYSKEYDOWN消息
当用户按下 F10 键 (激活菜单栏) 或按住 Alt 键,然后按另一个键时,发布到具有键盘焦点的窗口。 当当前没有窗口具有键盘焦点时,也会发生这种情况;在这种情况下, 会将WM_SYSKEYDOWN 消息发送到活动窗口。 接收消息的窗口可以通过检查 lParam 参数中的上下文代码来区分这两个上下文。
#define WM_SYSKEYDOWN 0x0104
参数
-
wParam
-
按下的键的虚拟键代码。 请参阅 虚拟密钥代码。
-
lParam
-
重复计数、扫描代码、扩展键标志、上下文代码、以前的键状态标志和转换状态标志,如下表所示。
Bits 含义 0-15 当前消息的重复计数。 该值是由于用户按住键而自动重复击键的次数。 如果击键的保持时间足够长,则发送多个消息。 但是,重复计数不是累积计数。 16-23 扫描代码。 该值取决于 OEM。 24 指示键是扩展键,例如在增强型 101 或 102 键键盘上显示的右键和 CTRL 键。 如果是扩展键,则值为 1;否则为 0。 25-28 保留;不使用。 29 上下文代码。 如果 Alt 键在按下键时关闭,则值为 1;如果 WM_SYSKEYDOWN 消息发布到活动窗口,则为 0,因为没有窗口具有键盘焦点。 30 上一个键状态。 如果在发送消息之前键处于按下状态,则值为 1;如果键处于未按下状态,则值为 0。 31 转换状态。 WM_SYSKEYDOWN 消息的值 始终为 0。 有关详细信息,请参阅 击键消息标志。
返回值
如果应用程序处理此消息,则应用程序应返回零。
注解
DefWindowProc 函数检查指定的键,如果键为 TAB 或 ENTER,则生成WM_SYSCOMMAND消息。
当上下文代码为零时,可以将消息传递给 TranslateAccelerator 函数,该函数将处理它,就像它是普通键消息而不是字符键消息一样。 这样,即使活动窗口没有键盘焦点,也允许将快捷键与活动窗口一起使用。
由于自动重复,在发送WM_SYSKEYUP消息之前,可能会发生多个WM_SYSKEYDOWN消息。 可以使用上一个键状态 (位 30 位) 来确定 WM_SYSKEYDOWN 消息指示第一个向下转换还是重复的向下转换。
对于增强型 101 键和 102 键键盘,增强键是键盘主部分的右 Alt 键和 Ctrl 键;INS、DEL、HOME、END、PAGE UP、PAGE DOWN 和数字键盘左侧群集中的箭头键:和数字键盘中的 (/) 和 ENTER 键的除法。 其他键盘可能支持 lParam 参数中的扩展键位。
每当用户按下 F10 键而不使用 ALT 键时,也会发送此消息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|