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

사용자 지정 가능한 메시지 대화 상자에 대한 UI를 표시합니다. 사용자가 누른 버튼의 인덱스가 결과에 포함됩니다.

## 구문

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

### 매개 변수

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

[XAsyncRun](/reference/system/xasync/functions/xasyncrun)에 전달되는 [XAsyncBlock](/reference/system/xasync/structs/xasyncblock)에 대한 포인터입니다.

*titleText*   \_In\_<br />형식: char\*

메시지 대화 상자의 텍스트 제목입니다.

*contentText*   \_In\_<br />형식: char\*

메시지 대화 상자 내부에 표시되는 텍스트입니다.

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

메시지 대화 상자의 첫 번째 버튼에 표시되는 텍스트입니다.

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

메시지 대화 상자의 두 번째 버튼에 표시되는 텍스트입니다.

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

메시지 대화 상자의 세 번째 버튼에 표시되는 텍스트입니다.

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

메시지 대화 상자가 처음 표시될 때 기본적으로 선택되는 버튼을 나타냅니다.

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

취소 동작을 나타내는 버튼을 지정합니다.

### 반환 값

형식: HRESULT

비동기 호출의 HRESULT 성공 또는 오류 코드입니다.

결과를 가져오려면 *XAsyncBlock* 콜백 내부 또는 *XAsyncBlock* 완료 후 [XGameUiShowMessageDialogResult](/reference/system/xgameui/functions/xgameuishowmessagedialogresult)를 호출하세요.

## 설명

다른 **XGameUI\*** 함수와 마찬가지로 **XGameUiShowMessageDialogAsync**는 타이틀 파티션 외부에서 UI를 렌더링하며, 각 프레임이 디스플레이 장치로 전송되기 전에 결과가 타이틀 출력과 합성됩니다. 즉, 게임이 렌더링을 하고 있는지 여부에 관계없이 **XGameUiShowMessageDialogAsync**를 사용하여 사용자에게 정보를 표시할 수 있습니다.

UI를 호출하면 게임이 *제한 모드(constrained mode)* 로 전환됩니다. 제한 모드에서는 호출된 UI의 백그라운드에 있는 동안 타이틀이 더 적은 시스템 리소스를 받게 됩니다. 제한 모드 및 타이틀의 기타 작동 모드에 대해 자세히 알아보려면 [XBOX 게임 수명 주기(NDA 항목)](/build/console-features/console-workflows/xbox-game-life-cycle)를 참조하세요.

다음 예제 코드는 입력을 기다리는 차단 UI를 생성하기 위해 개발 시나리오에서 이 메서드를 사용하는 방법을 보여 줍니다. 이는 크래시 실패 위치에서 현재 실행을 일시 중지하고 크래시 위치를 보고하거나 개발자에게 디버거를 연결하라는 메시지를 표시하는 데 특히 유용할 수 있습니다.

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

## 요구 사항

**헤더:** XGameUI.h

**라이브러리:** xgameruntime.lib

**지원 플랫폼:** Windows, Steam Deck, XBOX One 계열 콘솔 및 XBOX Series 콘솔

## 개념 문서

* [비동기 프로그래밍 설계 목표 및 개선 사항](/build/core-features/common/async/async-whitepaper)

## 함께 보기

[XGameUI](/reference/system/xgameui/xgameui_members)<br />[XGameUIShowMessageDialogResult](/reference/system/xgameui/functions/xgameuishowmessagedialogresult)<br />[XBOX 게임 수명 주기(NDA 항목)](/build/console-features/console-workflows/xbox-game-life-cycle)


## Related topics

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