> ## 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.

# XGameUiShowMessageDialogAsync

> XGameUiShowMessageDialogAsync

# XGameUiShowMessageDialogAsync

Muestra la interfaz de usuario de un cuadro de diálogo de mensaje personalizable. El índice del botón presionado por el usuario está contenido en el resultado.

## Sintaxis

```cpp theme={null}
HRESULT XGameUiShowMessageDialogAsync(  
         XAsyncBlock* async,  
         const char* titleText,  
         const char* contentText,  
         const char* firstButtonText,  
         const char* secondButtonText,  
         const char* thirdButtonText,  
         XGameUiMessageDialogButton defaultButton,  
         XGameUiMessageDialogButton cancelButton  
)  
```

### Parámetros

*async*   \_In\_<br />Tipo: [XAsyncBlock\*](/reference/system/xasync/structs/xasyncblock)

Un puntero al [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) que se pasa a [XAsyncRun](/reference/system/xasync/functions/xasyncrun).

*titleText*   \_In\_<br />Tipo: char\*

El título de texto del cuadro de diálogo de mensaje.

*contentText*   \_In\_<br />Tipo: char\*

El texto que se muestra dentro del cuadro de diálogo de mensaje.

*firstButtonText*   \_In\_opt\_<br />Tipo: char\*

El texto que se muestra en el primer botón del cuadro de diálogo de mensaje.

*secondButtonText*   \_In\_opt\_<br />Tipo: char\*

El texto que se muestra en el segundo botón del cuadro de diálogo de mensaje.

*thirdButtonText*   \_In\_opt\_<br />Tipo: char\*

El texto que se muestra en el tercer botón del cuadro de diálogo de mensaje.

*defaultButton*   \_In\_<br />Tipo: [XGameUiMessageDialogButton](/reference/system/xgameui/enums/xgameuimessagedialogbutton)

Indica qué botón está seleccionado de forma predeterminada cuando se muestra por primera vez el cuadro de diálogo de mensaje.

*cancelButton*   \_In\_<br />Tipo: [XGameUiMessageDialogButton](/reference/system/xgameui/enums/xgameuimessagedialogbutton)

Indica qué botón representa la acción de cancelar.

### Valor devuelto

Tipo: HRESULT

HRESULT de éxito o código de error de la llamada asincrónica.

Para obtener el resultado, llame a [XGameUiShowMessageDialogResult](/reference/system/xgameui/functions/xgameuishowmessagedialogresult) dentro de la devolución de llamada de *XAsyncBlock* o después de que el *XAsyncBlock* se complete.

## Comentarios

Al igual que otras funciones **XGameUI\***, **XGameUiShowMessageDialogAsync** representa su interfaz de usuario fuera de la partición del título, y el resultado se compone con la salida del título antes de que cada fotograma se envíe al dispositivo de visualización. Esto significa que **XGameUiShowMessageDialogAsync** puede usarse para presentar información a un usuario independientemente de si el juego está representando o no.

Llamar a la interfaz de usuario hará que el juego entre en *modo restringido*. En el modo restringido, el título recibirá menos recursos del sistema mientras esté en segundo plano de la interfaz de usuario a la que se ha llamado. Para obtener más información sobre el modo restringido y otros modos operativos de su título, lea [Ciclo de vida del juego de XBOX (tema NDA)](/build/console-features/console-workflows/xbox-game-life-cycle).

El siguiente código de ejemplo ilustra el uso de este método en un escenario de desarrollo para crear una interfaz de usuario de bloqueo en espera de entrada. Esto puede ser especialmente útil para pausar la ejecución actual en la ubicación de un error de bloqueo y notificar la ubicación del bloqueo o pedir al desarrollador que adjunte un depurador.

```cpp theme={null}
if (FAILED(XGameRuntimeInitialize()))  
    return 1;

XTaskQueueHandle queue;
DX::ThrowIfFailed(
    XTaskQueueCreate(XTaskQueueDispatchMode::ThreadPool, XTaskQueueDispatchMode::Immediate, &queue)  
);

XAsyncBlock* ab = new XAsyncBlock;
ZeroMemory(ab, sizeof(XAsyncBlock));
ab->queue = queue;

// show dialog, wait for completion, get result.

XGameUiMessageDialogButton button;
if (SUCCEEDED(XGameUiShowMessageDialogAsync(ab, u8"Title String", u8"This is content text",
                                            u8"Option #1", u8"Option #2", u8"Option #3",
                                            XGameUiMessageDialogButton::First,
                                            XGameUiMessageDialogButton::Third)) &&
    SUCCEEDED(XAsyncGetStatus(ab, true)) &&
    SUCCEEDED(XGameUiShowMessageDialogResult(ab, &button)))  
{
    DoSomethingWithResponse(button);  // set breakpoint here to investigate
}
```

## Requisitos

**Encabezado:** XGameUI.h

**Biblioteca:** xgameruntime.lib

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

## Documentación conceptual

* [Objetivos de diseño y mejoras de la programación asincrónica](/build/core-features/common/async/async-whitepaper)

## Consulte también

[XGameUI](/reference/system/xgameui/xgameui_members)<br />[XGameUIShowMessageDialogResult](/reference/system/xgameui/functions/xgameuishowmessagedialogresult)<br />[Ciclo de vida del juego de XBOX (tema NDA)](/build/console-features/console-workflows/xbox-game-life-cycle)


## Related topics

- [XGameUiShowMessageDialogResult](/es/reference/system/xgameui/functions/xgameuishowmessagedialogresult.md)
- [XGameUiMessageDialogButton](/es/reference/system/xgameui/enums/xgameuimessagedialogbutton.md)
- [XGameUiShowMessageDialogUiCallback](/es/reference/system/xgameui/functions/xgameuishowmessagedialoguicallback.md)
- [XGameUiSetMessageDialogUiResponse](/es/reference/system/xgameui/functions/xgameuisetmessagedialoguiresponse.md)
- [XGameUiUiCallbacks](/es/reference/system/xgameui/structs/xgameuiuicallbacks.md)
