다음을 통해 공유


XGameUiShowMessageDialogAsync

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

구문

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_
형식: XAsyncBlock*

XAsyncRun에 전달된 XAsyncBlock에 대한 포인터입니다.

titleText _In_
형식: char*

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

contentText _In_
형식: char*

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

firstButtonText _In_opt_
형식: char*

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

secondButtonText _In_opt_
형식: char*

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

thirdButtonText _In_opt_
형식: char*

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

defaultButton _In_
형식: XGameUiMessageDialogButton

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

cancelButton _In_
형식: XGameUiMessageDialogButton

취소 작업을 나타내는 버튼을 나타냅니다.

반환 값

형식: HRESULT

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

결과를 가져오려면 XAsyncBlock 콜백 내에서 또는 XAsyncBlock이 완료된 후 XGameUiShowMessageDialogResult를 호출합니다.

비고

다른 XGameUI* 함수와 마찬가지로 XGameUiShowMessageDialogAsync는 타이틀 파티션의 외부에서 해당 UI를 렌더링하고, 각 프레임이 디스플레이 장치로 보내지기 전에 타이틀 출력과 함께 결과가 구성됩니다. 즉, XGameUiShowMessageDialogAsync를 사용하여 게임이 고르게 렌더링되는지 여부에 대한 정보를 사용자에게 표시할 수 있습니다.

UI를 호출하면 게임이 제한 모드로 전환됩니다. 제한 모드에서는 호출된 UI의 백그라운드에 있는 동안 타이틀이 시스템 리소스를 적게 받게 됩니다. 타이틀의 제한 모드 및 기타 운영 모드에 대한 자세한 내용은 Xbox 게임 수명 주기(NDA 항목)권한 부여 필요를 참조하세요.

다음 예제 코드는 개발 시나리오에서 이 메서드를 사용하여 입력 대기 중인 UI 차단을 생성하는 방법을 보여줍니다. 이 방식은 특히 충돌 오류 위치에서 현재 실행을 일시 중지하고 충돌 위치를 보고하거나 개발자에게 디버거를 연결하도록 프롬프트할 때 유용할 수 있습니다.

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, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

XGameUI
XGameUIShowMessageDialogResult
Xbox 게임 수명 주기(NDA 항목)권한 부여 필요