> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GameInputGamepadButtons

> GameInputGamepadButtons

# GameInputGamepadButtons

枚举游戏手柄按钮，包括方向键 (D-pad) 以及从轴到按钮的转换。

<a id="syntaxSection" />

## 语法

```cpp theme={null}
enum GameInputGamepadButtons
{
    GameInputGamepadNone                 = 0x00000000,
    GameInputGamepadMenu                 = 0x00000001,
    GameInputGamepadView                 = 0x00000002,
    GameInputGamepadA                    = 0x00000004,
    GameInputGamepadB                    = 0x00000008,
    GameInputGamepadC                    = 0x00004000,
    GameInputGamepadX                    = 0x00000010,
    GameInputGamepadY                    = 0x00000020,
    GameInputGamepadZ                    = 0x00008000,
    GameInputGamepadDPadUp               = 0x00000040,
    GameInputGamepadDPadDown             = 0x00000080,
    GameInputGamepadDPadLeft             = 0x00000100,
    GameInputGamepadDPadRight            = 0x00000200,
    GameInputGamepadLeftShoulder         = 0x00000400,
    GameInputGamepadRightShoulder        = 0x00000800,
    GameInputGamepadLeftTriggerButton    = 0x00010000,
    GameInputGamepadRightTriggerButton   = 0x00020000,
    GameInputGamepadLeftThumbstick       = 0x00001000,
    GameInputGamepadLeftThumbstickUp     = 0x00040000,
    GameInputGamepadLeftThumbstickDown   = 0x00080000,
    GameInputGamepadLeftThumbstickLeft   = 0x00100000,
    GameInputGamepadLeftThumbstickRight  = 0x00200000,
    GameInputGamepadRightThumbstick      = 0x00002000,
    GameInputGamepadRightThumbstickUp    = 0x00400000,
    GameInputGamepadRightThumbstickDown  = 0x00800000,
    GameInputGamepadRightThumbstickLeft  = 0x01000000,
    GameInputGamepadRightThumbstickRight = 0x02000000,
    GameInputGamepadPaddleLeft1          = 0x04000000,
    GameInputGamepadPaddleLeft2          = 0x08000000,
    GameInputGamepadPaddleRight1         = 0x10000000,
    GameInputGamepadPaddleRight2         = 0x20000000,
};

// Gamepad modules (Groupings of gamepad elements commonly found together)
const GameInputGamepadButtons GameInputGamepadModuleSystemDuo =
    GameInputGamepadMenu |
    GameInputGamepadView;

const GameInputGamepadButtons GameInputGamepadModuleDpad =
    GameInputGamepadDPadUp |
    GameInputGamepadDPadDown |
    GameInputGamepadDPadLeft |
    GameInputGamepadDPadRight;

const GameInputGamepadButtons GameInputGamepadModuleShoulders =
    GameInputGamepadLeftShoulder |
    GameInputGamepadRightShoulder;

const GameInputGamepadButtons GameInputGamepadModuleTriggers =
    GameInputGamepadLeftTriggerButton |
    GameInputGamepadRightTriggerButton;

const GameInputGamepadButtons GameInputGamepadModuleThumbsticks =
    GameInputGamepadLeftThumbstickUp |
    GameInputGamepadLeftThumbstickDown |
    GameInputGamepadLeftThumbstickLeft |
    GameInputGamepadLeftThumbstickRight |
    GameInputGamepadRightThumbstickUp |
    GameInputGamepadRightThumbstickDown |
    GameInputGamepadRightThumbstickLeft |
    GameInputGamepadRightThumbstickRight;

const GameInputGamepadButtons GameInputGamepadModulePaddles2 =
    GameInputGamepadPaddleLeft1 |
    GameInputGamepadPaddleRight1;

const GameInputGamepadButtons GameInputGamepadModulePaddles4 =
    GameInputGamepadPaddleLeft1 |
    GameInputGamepadPaddleLeft2 |
    GameInputGamepadPaddleRight1 |
    GameInputGamepadPaddleRight2;

// Commonly found gamepad layouts. Custom layouts are possible and encouraged.
const GameInputGamepadButtons GameInputGamepadLayoutBasic =
    GameInputGamepadModuleSystemDuo |
    GameInputGamepadModuleDpad |
    GameInputGamepadA |
    GameInputGamepadB;

const GameInputGamepadButtons GameInputGamepadLayoutButtons =
    GameInputGamepadLayoutBasic |
    GameInputGamepadX |
    GameInputGamepadY |
    GameInputGamepadModuleShoulders;

const GameInputGamepadButtons GameInputGamepadLayoutStandard =
    GameInputGamepadLayoutButtons |
    GameInputGamepadModuleTriggers |
    GameInputGamepadModuleThumbsticks |
    GameInputGamepadLeftThumbstick |
    GameInputGamepadRightThumbstick;

const GameInputGamepadButtons GameInputGamepadLayoutElite =
    GameInputGamepadLayoutStandard |
    GameInputGamepadModulePaddles4;
```

<a id="constantsSection" />

## 常量

| 常量                                   | 说明              |
| ------------------------------------ | --------------- |
| GameInputGamepadNone                 | 表示未按下任何按钮。      |
| GameInputGamepadMenu                 | 表示已按下菜单按钮。      |
| GameInputGamepadView                 | 表示已按下视图按钮。      |
| GameInputGamepadA                    | 表示已按下 A 按钮。     |
| GameInputGamepadB                    | 表示已按下 B 按钮。     |
| GameInputGamepadC                    | 表示已按下 C 按钮。     |
| GameInputGamepadX                    | 表示已按下 X 按钮。     |
| GameInputGamepadY                    | 表示已按下 Y 按钮。     |
| GameInputGamepadZ                    | 表示已按下 Z 按钮。     |
| GameInputGamepadDPadUp               | 表示已按下方向键的顶部。    |
| GameInputGamepadDPadDown             | 表示已按下方向键的底部。    |
| GameInputGamepadDPadLeft             | 表示已按下方向键的左侧。    |
| GameInputGamepadDPadRight            | 表示已按下方向键的右侧。    |
| GameInputGamepadLeftShoulder         | 表示已按下左肩键。       |
| GameInputGamepadRightShoulder        | 表示已按下右肩键。       |
| GameInputGamepadLeftTriggerButton    | 表示已按下左扳机按钮。     |
| GameInputGamepadRightTriggerButton   | 表示已按下右扳机按钮。     |
| GameInputGamepadLeftThumbstick       | 表示已按下左摇杆。       |
| GameInputGamepadLeftThumbstickUp     | 表示左摇杆指向上方。      |
| GameInputGamepadLeftThumbstickDown   | 表示左摇杆指向下方。      |
| GameInputGamepadLeftThumbstickLeft   | 表示左摇杆指向左方。      |
| GameInputGamepadLeftThumbstickRight  | 表示左摇杆指向右方。      |
| GameInputGamepadRightThumbstick      | 表示已按下右摇杆。       |
| GameInputGamepadRightThumbstickUp    | 表示右摇杆指向上方。      |
| GameInputGamepadRightThumbstickDown  | 表示右摇杆指向下方。      |
| GameInputGamepadRightThumbstickLeft  | 表示右摇杆指向左方。      |
| GameInputGamepadRightThumbstickRight | 表示右摇杆指向右方。      |
| GameInputGamepadPaddleLeft1          | 表示已按下左侧第一个拨片按钮。 |
| GameInputGamepadPaddleLeft2          | 表示已按下左侧第二个拨片按钮。 |
| GameInputGamepadPaddleRight1         | 表示已按下右侧第一个拨片按钮。 |
| GameInputGamepadPaddleRight2         | 表示已按下右侧第二个拨片按钮。 |

### 手柄模块

模块表示手柄上通常一起出现的一组元素。

| 常量                                | 说明                         |
| --------------------------------- | -------------------------- |
| GameInputGamepadModuleSystemDuo   | 菜单和视图按钮。                   |
| GameInputGamepadModuleDpad        | 方向键按钮（上、下、左、右）。            |
| GameInputGamepadModuleShoulders   | 左右肩键。                      |
| GameInputGamepadModuleTriggers    | 左右扳机。                      |
| GameInputGamepadModuleThumbsticks | 左右摇杆。                      |
| GameInputGamepadModulePaddles2    | 两个第一层拨片按钮（左 1 和右 1）。       |
| GameInputGamepadModulePaddles4    | 全部四个拨片按钮（左 1、左 2、右 1、右 2）。 |

### 手柄布局

常见的手柄布局。

| 常量                             | 说明                                 |
| ------------------------------ | ---------------------------------- |
| GameInputGamepadLayoutBasic    | System duo（菜单和视图）、方向键，以及 A 和 B 按钮。 |
| GameInputGamepadLayoutButtons  | 基础布局，加上 X、Y 按钮和肩键。                 |
| GameInputGamepadLayoutStandard | 自 XBOX 360 起在手柄上常见的标准布局。           |
| GameInputGamepadLayoutElite    | XBOX 精英手柄系列上的布局。                   |

<a id="remarksSection" />

## 备注

此枚举在 [GameInputGamePadState](/reference/input/gameinput/structs/gameinputgamepadstate) 结构中使用。你可以组合多个值以同时读取多个按钮。

`GameInputGamepadLeftTriggerButton`、`GameInputGamepadRightTriggerButton`、`GameInputGamepadLeftThumbstickUp`、`GameInputGamepadLeftThumbstickDown`、`GameInputGamepadLeftThumbstickLeft`、`GameInputGamepadLeftThumbstickRight`、`GameInputGamepadRightThumbstickUp`、`GameInputGamepadRightThumbstickDown`、`GameInputGamepadRightThumbstickLeft` 和 `GameInputGamepadRightThumbstickRight` 是大多数手柄上相应模拟轴的数字化表示。例如，如果左摇杆被完全推到上方，`GameInputGamepadLeftThumbstickUp` 按钮和 `GameInputGamepadLeftThumbstickY` 轴都会显示值 1.0。

有关详细信息，请参阅 [GameInput 读数](/build/core-features/common/input/overviews/input-readings) 中的 [从读数获取数据](/build/core-features/common/input/overviews/input-readings#gettingStateSection) 部分。

此枚举还可与 [IGameInputMapper::GetGamepadButtonMappingInfo](/reference/input/gameinput/interfaces/igameinputmapper/methods/igameinputmapper_getgamepadbuttonmappinginfo) 方法配合使用，以检索特定手柄按钮的映射信息。

<a id="requirementsSection" />

## 要求

**标头：** GameInput.h

**支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

<a id="seealsoSection" />

## 另请参阅

[GameInput 概述](/build/core-features/common/input/overviews/input-overview)\
[GameInput](/reference/input/gameinput/gameinput_members)

## 版本历史

| 版本     | 变更                                                                                                                                                                                          |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **v3** | **新增 16 个标志常量**：`C`、`Z`、`LeftTriggerButton`、`RightTriggerButton`、四个 `LeftThumbstick` 方向、四个 `RightThumbstick` 方向、`PaddleLeft1`、`PaddleLeft2`、`PaddleRight1`、`PaddleRight2`。还新增了 11 个组合/布局常量。 |
| **v0** | 引入。                                                                                                                                                                                         |

## 附录：以前的版本

### v0

```cpp theme={null}
enum GameInputGamepadButtons
{
    GameInputGamepadNone            = 0x00000000,
    GameInputGamepadMenu            = 0x00000001,
    GameInputGamepadView            = 0x00000002,
    GameInputGamepadA               = 0x00000004,
    GameInputGamepadB               = 0x00000008,
    GameInputGamepadX               = 0x00000010,
    GameInputGamepadY               = 0x00000020,
    GameInputGamepadDPadUp          = 0x00000040,
    GameInputGamepadDPadDown        = 0x00000080,
    GameInputGamepadDPadLeft        = 0x00000100,
    GameInputGamepadDPadRight       = 0x00000200,
    GameInputGamepadLeftShoulder    = 0x00000400,
    GameInputGamepadRightShoulder   = 0x00000800,
    GameInputGamepadLeftThumbstick  = 0x00001000,
    GameInputGamepadRightThumbstick = 0x00002000,
};
```


## Related topics

- [GameInput](/zh-CN/reference/input/gameinput/gameinput_members.md)
- [GameInputMouseButtons](/zh-CN/reference/input/gameinput/enums/gameinputmousebuttons.md)
- [IGameInputReading::GetGamepadState](/zh-CN/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getgamepadstate.md)
- [GameInputSystemButtonCallback](/zh-CN/reference/input/gameinput/functions/gameinputsystembuttoncallback.md)
- [GameInputFlightStickButtons](/zh-CN/reference/input/gameinput/enums/gameinputflightstickbuttons.md)
