다음을 통해 공유


TaskDialogIndirect 함수(commctrl.h)

TaskDialogIndirect 함수는 작업 대화 상자를 만들고, 표시하고, 작동합니다. 작업 대화 상자에는 애플리케이션 정의 아이콘, 메시지, 제목, 확인 확인란, 명령 링크, 푸시 단추 및 라디오 단추가 포함됩니다. 이 함수에서는 알림 메시지를 받기 위한 호출 함수를 등록할 수 있습니다.

구문

HRESULT TaskDialogIndirect(
  [in]            const TASKDIALOGCONFIG *pTaskConfig,
  [out, optional] int                    *pnButton,
  [out, optional] int                    *pnRadioButton,
  [out, optional] BOOL                   *pfVerificationFlagChecked
);

매개 변수

[in] pTaskConfig

형식: const TASKDIALOGCONFIG*

작업 대화 상자를 표시하는 데 사용되는 정보가 포함된 TASKDIALOGCONFIG 구조체에 대한 포인터입니다.

[out, optional] pnButton

형식: int*

다음 중 하나를 수신하는 변수의 주소:

  • pTaskConfig 매개 변수의 pButtons 멤버에 지정된 단추 ID 중 하나
  • 다음 값 중 하나입니다.
Description
0 함수 호출에 실패했습니다. 자세한 내용은 반환 값을 참조하세요.
IDCANCEL 취소 단추를 선택했거나, Alt-F4를 누르고, 이스케이프를 누르거나, 사용자가 창 닫기 단추를 클릭했습니다.
IDNO 단추를 선택하지 않았습니다.
IDOK 확인 단추가 선택되었습니다.
IDRETRY 다시 시도 단추가 선택되었습니다.
IDYES 단추가 선택되었습니다.
 

이 매개 변수가 NULL이면 값이 반환되지 않습니다.

[out, optional] pnRadioButton

형식: int*

pTaskConfig 매개 변수의 pRadioButtons 멤버에 지정된 단추 ID 중 하나를 수신하는 변수의 주소입니다. 이 매개 변수가 NULL이면 값이 반환되지 않습니다.

[out, optional] pfVerificationFlagChecked

형식: BOOL*

다음 값 중 하나를 수신하는 변수의 주소입니다.

설명
TRUE 대화 상자가 해제되었을 때 확인 확인란이 선택되었습니다.
FALSE 대화 상자가 해제되었을 때 확인 확인란이 선택되지 않았습니다.
 

이 매개 변수가 NULL이면 확인 확인란을 사용할 수 없습니다.

반환 값

형식: HRESULT

이 함수는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
작업이 성공적으로 완료되었습니다.
E_OUTOFMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.
E_INVALIDARG
하나 이상의 인수가 잘못되었습니다.
E_FAIL
작업이 실패했습니다.

설명

작업 대화 상자를 사용하여 시스템이 메모리가 부족함을 나타내는 경우 리소스 로드 시도가 실패할 수 있으므로 TASKDIALOGCONFIG 구조의 다양한 문자열 및 아이콘 멤버가 가리키는 문자열을 리소스 파일에서 가져와서는 안 됩니다.

대화 상자가 있는 동안 작업 대화 상자를 만드는 경우 대화 상자에 대한 핸들을 hWndParent 매개 변수로 사용합니다. hWndParent 매개 변수는 대화 상자의 컨트롤과 같은 자식 창을 식별해서는 안 됩니다.

이 함수가 호출될 때 부모 창을 숨기거나 사용하지 않도록 설정해서는 안 됩니다.


int nButtonPressed                  = 0;
TASKDIALOGCONFIG config             = {0};
const TASKDIALOG_BUTTON buttons[]   = { 
                                        { IDOK, L"Change password" }
                                      };
config.cbSize                       = sizeof(config);
config.hInstance                    = hInst;
config.dwCommonButtons              = TDCBF_CANCEL_BUTTON;
config.pszMainIcon                  = TD_WARNING_ICON;
config.pszMainInstruction           = L"Change Password";
config.pszContent                   = L"Remember your changed password.";
config.pButtons                     = buttons;
config.cButtons                     = ARRAYSIZE(buttons);

TaskDialogIndirect(&config, &nButtonPressed, NULL, NULL);
switch (nButtonPressed)
{
    case IDOK:
        break; // the user pressed button 0 (change password).
    case IDCANCEL:
        break; // user canceled the dialog
    default:
        break; // should never happen
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 commctrl.h(Commctrl.h 포함)
라이브러리 Comctl32.lib
DLL Comctl32.dll(버전 6)

추가 정보

대화 상자