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 |
---|---|
|
작업이 성공적으로 완료되었습니다. |
|
메모리가 부족하여 작업을 완료할 수 없습니다. |
|
하나 이상의 인수가 잘못되었습니다. |
|
작업이 실패했습니다. |
설명
작업 대화 상자를 사용하여 시스템이 메모리가 부족함을 나타내는 경우 리소스 로드 시도가 실패할 수 있으므로 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) |
추가 정보