TaskDialog 함수(commctrl.h)

TaskDialog 함수는 작업 대화 상자를 만들고, 표시하고, 작동합니다. 작업 대화 상자에는 애플리케이션 정의 메시지 텍스트와 제목, 아이콘 및 미리 정의된 푸시 단추의 조합이 포함됩니다. 이 함수는 알림을 받기 위한 호출 함수의 등록을 지원하지 않습니다.

구문

HRESULT TaskDialog(
  [in]  HWND                           hwndOwner,
  [in]  HINSTANCE                      hInstance,
  [in]  PCWSTR                         pszWindowTitle,
  [in]  PCWSTR                         pszMainInstruction,
  [in]  PCWSTR                         pszContent,
  [in]  TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons,
  [in]  PCWSTR                         pszIcon,
  [out] int                            *pnButton
);

매개 변수

[in] hwndOwner

형식: HWND

만들 작업 대화 상자의 소유자 창에 대한 핸들입니다. 이 매개 변수가 NULL이면 작업 대화 상자에 소유자 창이 없습니다.

[in] hInstance

형식: HINSTANCE

pszIcon 멤버로 식별된 아이콘 리소스와 pszWindowTitlepszMainInstruction 멤버로 식별된 문자열 리소스를 포함하는 모듈에 대한 핸들입니다. 이 매개 변수가 NULL인 경우 pszIconNULL 이거나 시스템 리소스 식별자를 포함하는 null로 종료된 유니코드 문자열에 대한 포인터여야 합니다(예: TD_ERROR_ICON).

[in] pszWindowTitle

형식: PCWSTR

작업 대화 상자 제목에 사용할 문자열에 대한 포인터입니다. 이 매개 변수는 텍스트 또는 MAKEINTRESOURCE 매크로를 통해 전달된 정수 리소스 식별자를 포함하는 null로 끝나는 유니코드 문자열입니다. 이 매개 변수가 NULL이면 실행 프로그램의 파일 이름이 사용됩니다.

[in] pszMainInstruction

형식: PCWSTR

기본 명령에 사용할 문자열에 대한 포인터입니다. 이 매개 변수는 텍스트 또는 MAKEINTRESOURCE 매크로를 통해 전달된 정수 리소스 식별자를 포함하는 null로 끝나는 유니코드 문자열입니다. 기본 명령이 필요하지 않은 경우 이 매개 변수는 NULL일 수 있습니다.

[in] pszContent

형식: PCWSTR

기본 명령 아래에 더 작은 글꼴로 표시되는 추가 텍스트에 사용되는 문자열에 대한 포인터입니다. 이 매개 변수는 텍스트 또는 MAKEINTRESOURCE 매크로를 통해 전달된 정수 리소스 식별자를 포함하는 null로 끝나는 유니코드 문자열입니다. 추가 텍스트가 필요하지 않은 경우 NULL 일 수 있습니다.

[in] dwCommonButtons

형식: TASKDIALOG_COMMON_BUTTON_FLAGS

대화 상자에 표시되는 푸시 단추를 지정합니다. 이 매개 변수는 다음 그룹의 플래그 조합일 수 있습니다.

참고 단추가 지정되지 않은 경우 대화 상자에는 기본적으로 확인 단추가 포함됩니다.
 
의미
TDCBF_OK_BUTTON
작업 대화 상자에는 확인이라는 푸시 단추가 포함되어 있습니다.
TDCBF_YES_BUTTON
작업 대화 상자에는 예라는 푸시 단추가 포함되어 있습니다.
TDCBF_NO_BUTTON
작업 대화 상자에는 누름 단추가 포함되어 있습니다. 아니요.
TDCBF_CANCEL_BUTTON
작업 대화 상자에는 취소라는 푸시 단추가 포함되어 있습니다. 일반적인 취소 작업(Alt-F4 및 이스케이프)에 응답하려면 대화 상자에 이 단추를 지정해야 합니다.
TDCBF_RETRY_BUTTON
작업 대화 상자에는 다시 시도 단추가 포함되어 있습니다.
TDCBF_CLOSE_BUTTON
작업 대화 상자에는 닫기 단추가 포함되어 있습니다.

[in] pszIcon

형식: PCWSTR

작업 대화 상자에 표시할 아이콘을 식별하는 문자열에 대한 포인터입니다. 이 매개 변수는 MAKEINTRESOURCE 매크로에 전달된 정수 리소스 식별자이거나 다음 미리 정의된 값 중 하나여야 합니다. 이 매개 변수가 NULL이면 아이콘이 표시되지 않습니다. hInstance 매개 변수가 NULL이고 미리 정의된 값 중 하나가 사용되지 않으면 TaskDialog 함수가 실패합니다.

의미
TD_ERROR_ICON
작업 대화 상자에 중지 기호 아이콘이 나타납니다.
TD_INFORMATION_ICON
원 안의 소문자 i로 구성된 아이콘이 작업 대화 상자에 나타납니다.
TD_SHIELD_ICON
작업 대화 상자에 보안 방패 아이콘이 나타납니다.
TD_WARNING_ICON
느낌표 아이콘이 작업 대화 상자에 나타납니다.

[out] pnButton

형식: int*

이 함수가 반환될 때 다음 값 중 하나를 수신하는 정수 위치에 대한 포인터를 포함합니다.

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

이 값이 NULL이면 값이 반환되지 않습니다.

반환 값

형식: HRESULT

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

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

설명

작업 대화 상자를 사용하여 시스템이 메모리 부족임을 나타내는 경우 리소스 로드 시도가 실패할 수 있으므로 pszMainInstructionpszWindowTitle 매개 변수가 가리키는 문자열을 리소스 파일에서 가져와서는 안 됩니다.

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

작업 대화 상자는 올바른 시스템 정의 UI 요소를 사용하므로 MessageBox 함수로 만든 메시지 상자를 사용하는 대신 사용해야 합니다. 더 많은 기능을 얻으려면 TaskDialogIndirect를 사용합니다.

더 큰 프로그램의 일부로 포함할 다음 예제 코드는 작업 대화 상자를 만들고 입력을 캡처하는 방법을 보여줍니다.


int nButtonPressed = 0;
TaskDialog(NULL, hInst, 
    MAKEINTRESOURCE(IDS_APPLICATION_TITLE),
    MAKEINTRESOURCE(IDS_DOSOMETHING), 
    MAKEINTRESOURCE(IDS_SOMECONTENT), 
    TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON,
    TD_WARNING_ICON, 
    &nButtonPressed);

if (IDOK == nButtonPressed)
{
    // OK button pressed
}
else if (IDCANCEL == nButtonPressed)
{
    // Cancel pressed
}

요구 사항

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

추가 정보

대화 상자