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

Affiche l'interface utilisateur d'une boîte de dialogue de message personnalisable. L'index du bouton sur lequel l'utilisateur a appuyé est contenu dans le résultat.

## Syntaxe

```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  
)  
```

### Paramètres

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

Pointeur vers le [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) passé à [XAsyncRun](/fr/reference/system/xasync/functions/xasyncrun).

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

Texte du titre de la boîte de dialogue de message.

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

Texte affiché à l'intérieur de la boîte de dialogue de message.

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

Texte affiché sur le premier bouton de la boîte de dialogue de message.

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

Texte affiché sur le deuxième bouton de la boîte de dialogue de message.

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

Texte affiché sur le troisième bouton de la boîte de dialogue de message.

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

Indique quel bouton est sélectionné par défaut lors du premier affichage de la boîte de dialogue de message.

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

Indique quel bouton représente l'action d'annulation.

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT de l'appel asynchrone.

Pour obtenir le résultat, appelez [XGameUiShowMessageDialogResult](/fr/reference/system/xgameui/functions/xgameuishowmessagedialogresult) dans le rappel *XAsyncBlock* ou une fois le *XAsyncBlock* terminé.

## Remarques

Comme les autres fonctions **XGameUI\***, **XGameUiShowMessageDialogAsync** effectue le rendu de son interface utilisateur en dehors de la partition du titre, et le résultat est composité avec la sortie du titre avant que chaque frame ne soit envoyée au périphérique d'affichage. Cela signifie que **XGameUiShowMessageDialogAsync** peut être utilisée pour présenter des informations à un utilisateur, que le jeu effectue un rendu ou non.

L'appel d'une interface utilisateur fait passer votre jeu en *mode contraint*. En mode contraint, votre titre reçoit moins de ressources système tant qu'il se trouve en arrière-plan de l'interface utilisateur appelée. Pour en savoir plus sur le mode contraint et les autres modes de fonctionnement de votre titre, consultez [Cycle de vie des jeux XBOX (rubrique sous NDA)](/fr/build/console-features/console-workflows/xbox-game-life-cycle).

L'exemple de code suivant illustre l'utilisation de cette méthode dans un scénario de développement pour créer une interface utilisateur bloquante qui attend une entrée. Cela peut être particulièrement utile pour suspendre l'exécution en cours à l'emplacement d'une défaillance entraînant un plantage, et soit signaler l'emplacement du plantage, soit inviter le développeur à attacher un débogueur.

```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
}
```

## Configuration requise

**En-tête :** XGameUI.h

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, Steam Deck, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Objectifs de conception et améliorations de la programmation asynchrone](/fr/build/core-features/common/async/async-whitepaper)

## Voir aussi

[XGameUI](/fr/reference/system/xgameui/xgameui_members)<br />[XGameUIShowMessageDialogResult](/fr/reference/system/xgameui/functions/xgameuishowmessagedialogresult)<br />[Cycle de vie des jeux XBOX (rubrique sous NDA)](/fr/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)
- [XGameUiShowMessageDialogUiCallback](/reference/system/xgameui/functions/xgameuishowmessagedialoguicallback.md)
