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

Exibe a interface do usuário de uma caixa de diálogo de mensagem personalizável. O índice do botão pressionado pelo usuário está contido no resultado.

## Sintaxe

```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\*](/pt-BR/reference/system/xasync/structs/xasyncblock)

Um ponteiro para o [XAsyncBlock](/pt-BR/reference/system/xasync/structs/xasyncblock) que é passado para [XAsyncRun](/pt-BR/reference/system/xasync/functions/xasyncrun).

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

O texto do título da caixa de diálogo de mensagem.

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

O texto exibido dentro da caixa de diálogo de mensagem.

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

O texto exibido no primeiro botão da caixa de diálogo de mensagem.

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

O texto exibido no segundo botão da caixa de diálogo de mensagem.

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

O texto exibido no terceiro botão da caixa de diálogo de mensagem.

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

Indica qual botão é selecionado por padrão quando a caixa de diálogo de mensagem é exibida pela primeira vez.

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

Indica qual botão representa a ação de cancelamento.

### Valor retornado

Tipo: HRESULT

Código HRESULT de êxito ou erro da chamada assíncrona.

Para obter o resultado, chame [XGameUiShowMessageDialogResult](/pt-BR/reference/system/xgameui/functions/xgameuishowmessagedialogresult) dentro do retorno de chamada de *XAsyncBlock* ou após a conclusão de *XAsyncBlock*.

## Comentários

Assim como outras funções **XGameUI\***, **XGameUiShowMessageDialogAsync** renderiza a interface do usuário fora da partição do título, e o resultado é composto com a saída do título antes que cada quadro seja enviado ao dispositivo de exibição. Isso significa que **XGameUiShowMessageDialogAsync** pode ser usada para apresentar informações a um usuário independentemente de o jogo estar renderizando ou não.

Chamar a interface do usuário fará com que o jogo entre no *modo restrito*. No modo restrito, o título receberá menos recursos do sistema enquanto estiver em segundo plano em relação à interface do usuário chamada. Para saber mais sobre o modo restrito e outros modos operacionais do título, leia [Ciclo de vida do jogo XBOX (tópico sob NDA)](/pt-BR/build/console-features/console-workflows/xbox-game-life-cycle).

O código de exemplo a seguir ilustra o uso desse método em um cenário de desenvolvimento para criar uma interface do usuário de bloqueio que aguarda entrada. Isso pode ser particularmente útil para pausar a execução atual no local de uma falha e relatar o local da falha ou solicitar que o desenvolvedor anexe um 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

**Cabeçalho:** XGameUI.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatíveis:** Windows, Steam Deck, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Metas de design e melhorias da programação assíncrona](/pt-BR/build/core-features/common/async/async-whitepaper)

## Confira também

[XGameUI](/pt-BR/reference/system/xgameui/xgameui_members)<br />[XGameUIShowMessageDialogResult](/pt-BR/reference/system/xgameui/functions/xgameuishowmessagedialogresult)<br />[Ciclo de vida do jogo XBOX (tópico sob NDA)](/pt-BR/build/console-features/console-workflows/xbox-game-life-cycle)


## Related topics

- [XGameUiShowMessageDialogAsync](/reference/system/xgameui/functions/xgameuishowmessagedialogasync.md)
- [XGameUiShowMessageDialogResult](/reference/system/xgameui/functions/xgameuishowmessagedialogresult.md)
- [XGameUiMessageDialogButton](/reference/system/xgameui/enums/xgameuimessagedialogbutton.md)
