XINPUT_KEYSTROKE

介绍 XInputGetKeystroke 函数返回的击键数据。

语法

typedef struct XINPUT_KEYSTROKE {  
    WORD VirtualKey;  
    WCHAR Unicode;  
    WORD Flags;  
    BYTE UserIndex;  
    BYTE HidCode;  
} XINPUT_KEYSTROKE  

成员

VirtualKey
类型:WORD

键、按钮或摇杆移动的虚拟键代码。

Unicode
类型:WCHAR

该成员未使用并且其值为零。

Flags
类型:WORD

指示输入事件时的键盘状态的标志。 此成员可以是以下标志的任何组合:

说明
XINPUT_KEYSTROKE_KEYDOWN 键已按下。
XINPUT_KEYSTROKE_KEYUP 键已释放。
XINPUT_KEYSTROKE_REPEAT 持有的密钥的副本。

UserIndex
类型:BYTE

与头戴显示设备相关联的玩家的索引;介于 0 到 XUSER_MAX_COUNT - 1 之间的值。

HidCode
类型:BYTE

与输入对应的人机接口设备 (HID) 代码。 如果没有对应的 HID 代码,该值为零。

备注

此结构由 XInputGetKeystroke 函数使用。

将来的设备可能会返回在当前设备上不受支持并且此时未定义的 HID 代码和虚拟键值。 应用程序应忽略这些意外值。

虚拟键代码是一个字节值,表示键盘上的特定物理键,而不是可根据键盘状态将键映射到的单个字符或多个字符(可能没有)。 按下某个虚拟键时的键盘状态会修改所报告的字符。 例如,VK_4 可能表示"4" 或 "$",具体取决于 Shift 键的状态。

报告的键盘事件包括导致了事件的虚拟键、该键是否已按下或已释放(或正重复)以及事件发生时的键盘状态。 键盘状态包括 Ctrl、Alt 或 Shift 键是否被按下。

在 XInput.h 中定义了有效的虚拟键代码 (VK_xxx)。 除了指示键按下的代码外,以下代码还指示控制器输入:

说明
VK_PAD_A A 按钮
VK_PAD_B B 按钮
VK_PAD_X X 按钮
VK_PAD_Y Y 按钮
VK_PAD_RSHOULDER 右侧肩按钮
VK_PAD_LSHOULDER 左侧肩按钮
VK_PAD_LTRIGGER 左扳机键
VK_PAD_RTRIGGER 右扳机键
VK_PAD_DPAD_UP 方向键(向上)
VK_PAD_DPAD_DOWN 方向键(向下)
VK_PAD_DPAD_LEFT 方向键(向左)
VK_PAD_DPAD_RIGHT 方向键(向右)
VK_PAD_START “开始”按钮
VK_PAD_BACK “后退”按钮
VK_PAD_LTHUMB_PRESS 左摇杆单击
VK_PAD_RTHUMB_PRESS 右摇杆单击
VK_PAD_LTHUMB_UP 左操纵杆向上
VK_PAD_LTHUMB_DOWN 左操纵杆向下
VK_PAD_LTHUMB_RIGHT 左操纵杆向右
VK_PAD_LTHUMB_LEFT 左操纵杆向左
VK_PAD_LTHUMB_UPLEFT 左操纵杆向上和向左
VK_PAD_LTHUMB_UPRIGHT 左操纵杆向上和向右
VK_PAD_LTHUMB_DOWNRIGHT 左操纵杆向下和向右
VK_PAD_LTHUMB_DOWNLEFT 左操纵杆向下和向左
VK_PAD_RTHUMB_UP 右操纵杆向上
VK_PAD_RTHUMB_DOWN 右操纵杆向下
VK_PAD_RTHUMB_RIGHT 右操纵杆向右
VK_PAD_RTHUMB_LEFT 右操纵杆向左
VK_PAD_RTHUMB_UPLEFT 右操纵杆向上和向左
VK_PAD_RTHUMB_UPRIGHT 右操纵杆向上和向右
VK_PAD_RTHUMB_DOWNRIGHT 右操纵杆向下和向右
VK_PAD_RTHUMB_DOWNLEFT 右操纵杆向下和向左

有关详细信息,请参阅 XInputOnGameInput 包装器

要求

头文件:XInputOnGameInput.h

支持的平台:Xbox One 系列主机和 Xbox Series 主机

另请参阅

从 XInput 移植到 GameInput
XInputOnGameInput