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

# XGameUiTextEntryOpen

> XGameUiTextEntryOpen

# XGameUiTextEntryOpen

Abre un teclado virtual en el que el título es responsable de representar el texto. Actualmente
no está implementado en escritorio.

## Sintaxis

```cpp theme={null}
HRESULT XGameUiTextEntryOpen(  
         const XGameUiTextEntryOption* options,
         uint32_t maxLength,
         const char* initialText,
         uint32_t initialCursorIndex,
         XGameUiTextEntryHandle* handle 
)  
```

### Parámetros

*options*   \_In\_\
Tipo: [XGameUiTextEntryOptions](https://docs.xbox.com/es/reference/system/xgameui/structs/xgameuitextentryoptions.md)

Indica el conjunto inicial de opciones que se aplicarán al teclado cuando se abra, como la ubicación
y la configuración del teclado.

*maxLength*   \_In\_\
Tipo: uint32\_t

Número máximo de caracteres que el usuario puede escribir en el teclado virtual. Este número no debe
ser mayor que 32K.

*initialText*   \_In\_\_opt\_z\_\
Tipo: const char\*

Cadena de caracteres terminada en NULL con la que se rellena inicialmente el teclado virtual.

*initialCursorIndex*   \_In\_\
Tipo: uint32\_t

Índice de bytes inicial del cursor con respecto al carácter inicial.

*handle*   \_Out\_\
Tipo: XGameUiTextEntryHandle

Identificador del teclado virtual recién abierto.

### Valor devuelto

Tipo: HRESULT

HRESULT de éxito o código de error. Para ver una lista de códigos de error, consulte [Códigos de error](https://docs.xbox.com/es/reference/errorcodes.md).

| Código devuelto | Descripción |
| - | - |
| S\_OK | La operación se realizó correctamente. |
| E\_ACCESSDENIED | Ya se está mostrando un cuadro de diálogo. |

## Comentarios

Esta función se devolverá en cuanto pueda obtener el identificador, incluso si el teclado virtual aún no está
visible. Es seguro llamar a todas las demás funciones de **XGameUiTextEntry** en cuanto se devuelva el
identificador.

El siguiente ejemplo muestra los aspectos básicos de cómo usar las funciones de **XGameUiTextEntry**.

```cpp theme={null}
// Somewhere in the main game loop
// ...
bool someSignal;
bool showingKeyboard;
uint32_t KEYBOARD_MAX_CHARACTERS = 256; 
uint32_t KEYBOARD_BUFFER_SIZE = KEYBOARD_MAX_CHARACTERS * 4;

XGameUiTextEntryHandle keyboardInstance;

if (someSignal)
{
    XGameUiTextEntryOptions options;
    options.inputScope = XGameUiTextEntryInputScope::Default;
    options.positionHint = XGameUiTextEntryPositionHint::Bottom;
    options.flags = XGameUiTextEntryVisibilityFlags::Default;

    if (SUCCEEDED(XGameUiTextEntryOpen(&options, 
                                       nullptr, 
                                       0, 
                                       KEYBOARD_MAX_CHARACTERS, 
                                       &keyboardInstance)))
    {
        showingKeyboard = true;
    }
}

if (showingKeyboard)
{
    char* buffer[KEYBOARD_BUFFER_SIZE];
    uint32_t cursorPosition;
    XGameUiTextEntryChangeTypeFlags changeType;

    if (SUCCEEDED(XGameUiTextEntryGetState(
        keyboardInstance,
        &changeType,
        &cursorPosition,
        nullptr,
        nullptr,
        KEYBOARD_BUFFER_SIZE,
        buffer)))
    {
        if (changeType & XGameUiTextEntryChangeTypeFlags::TextChanged)
        {
            // Copy text for in-game rendering
            RenderTextInGame(buffer, cursorPosition);

            // Assuming the game doesn't want multi-line input
            if (strstr(buffer, "\n")
            {
                XGameUiTextEntryClose(keyboardInstance);
                showingKeyboard = false;
            }
        }

        if (showingKeyboard && (changeType & XGameUiTextEntryChangeTypeFlags::KeyboardDismissed))
        {
            XGameUiTextEntryClose(keyboardInstance);
            showingKeyboard = false;
        }    
    }
}
```

## Requisitos

**Encabezado:** XGameUI.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[XGameUI](https://docs.xbox.com/es/reference/system/xgameui/xgameui_members.md)\
[Compatibilidad con teclado virtual](https://docs.xbox.com/es/build/core-features/common/input/overviews/virtualkeyboardsupport.md)


## Related topics

- [XGameUiTextEntryClose](https://docs.xbox.com/es/reference/system/xgameui/functions/xgameuitextentryclose.md)
- [XGameUiTextEntryOptions](https://docs.xbox.com/es/reference/system/xgameui/structs/xgameuitextentryoptions.md)
- [XGameUiTextEntryGetState](https://docs.xbox.com/es/reference/system/xgameui/functions/xgameuitextentrygetstate.md)
- [XGameUiTextEntryInputScope](https://docs.xbox.com/es/reference/system/xgameui/enums/xgameuitextentryinputscope.md)
- [Compatibilidad con el teclado virtual](https://docs.xbox.com/es/build/core-features/common/input/overviews/virtualkeyboardsupport.md)
