WM_SYSKEYUP消息

当用户释放按住 Alt 键时按下的键时,使用键盘焦点发布到窗口。 当当前没有窗口具有键盘焦点时,也会发生这种情况;在这种情况下, WM_SYSKEYUP 消息将发送到活动窗口。 接收消息的窗口可以通过检查 lParam 中的上下文代码来区分这两个上下文。

窗口通过其 WindowProc 函数接收此消息。

#define WM_SYSKEYUP                     0x0105

参数

wParam

要释放的密钥的虚拟密钥代码。 请参阅虚拟键代码

lParam

重复次数、扫描代码、扩展键标志、上下文代码、上一个键状态标志和转换状态标志,如下表所示。

Bits 含义
0-15 当前消息的重复次数。 该值是由于用户按住键而自动重复击键的次数。 对于 WM_SYSKEYUP 消息,重复计数始终为 1。
16-23 扫描代码。 此值取决于 OEM。
24 指定键是否为扩展键,例如出现在增强型 101 或 102 键键盘上的右侧 ALT 和 CTRL 键。 如果它是扩展键,则值为 1;否则为零。
25-28 保留;请勿使用。
29 上下文代码。 如果在释放键时 ALT 键关闭,则值为 1;如果 WM_SYSKEYUP 消息发布到活动窗口,则为零,因为没有窗口具有键盘焦点。
30 上一个键状态。 对于 WM_SYSKEYUP 消息,该值始终为 1。
31 转换状态。 对于 WM_SYSKEYUP 消息,该值始终为 1。

有关详细信息,请参阅 击键消息标志

返回值

如果应用程序处理此消息,则应返回零。

备注

如果释放了 F10 键或 ALT 键,DefWindowProc 函数会将 WM_SYSCOMMAND 消息发送到顶级窗口。 消息的 wParam 参数设置为 SC_KEYMENU

当上下文代码为零时,可以将消息传递给 TranslateAccelerator 函数,该函数将其视为普通的键消息进行处理,而不是将其视为字符键消息。 这样,即使活动窗口没有键盘焦点,也能对活动窗口使用加速键。

对于增强型 101 和 102 键键盘,扩展键是键盘主区域上的右侧 ALT 和 CTRL 键;数字键盘左侧键群中的 INS、DEL、HOME、END、PAGE UP、PAGE DOWN 和箭头键;以及数字键盘中的除号 (/) 和 ENTER 键。 其他一些键盘可能支持 lParam 参数中的扩展键位。

对于非美国增强型 102 键键盘,右侧 ALT 键作为 CTRL+Alt 键处理。 下表显示了当用户按下并释放此键时生成的消息序列。

Message 虚拟密钥代码
WM_KEYDOWN VK_CONTROL
WM_KEYDOWN VK_MENU
WM_KEYUP VK_CONTROL
WM_SYSKEYUP VK_MENU

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winuser.h(包括 Windows.h)

请参阅