CTaskDialog ClassCTaskDialog Class

메시지 상자처럼 작동하지만 사용자에게 추가 정보를 표시할 수 있는 팝업 대화 상자입니다.A pop-up dialog box that functions like a message box but can display additional information to the user. CTaskDialog 에는 사용자로부터 정보를 수집하는 기능을 포함합니다.The CTaskDialog also includes functionality for gathering information from the user.

구문Syntax

class CTaskDialog : public CObject

멤버Members

생성자Constructors

속성Name 설명Description
CTaskDialog:: CTaskDialogCTaskDialog::CTaskDialog CTaskDialog 개체를 생성합니다.Constructs a CTaskDialog object.

메서드Methods

속성Name 설명Description
CTaskDialog:: AddCommandControlCTaskDialog::AddCommandControl 에 명령 단추 컨트롤을 추가 CTaskDialog 합니다.Adds a command button control to the CTaskDialog.
CTaskDialog:: AddRadioButtonCTaskDialog::AddRadioButton 에 라디오 단추를 추가 CTaskDialog 합니다.Adds a radio button to the CTaskDialog.
CTaskDialog:: 클릭 CommandcontrolCTaskDialog::ClickCommandControl 명령 단추 컨트롤이 나 일반 단추를 프로그래밍 방식으로 클릭 합니다.Clicks a command button control or common button programmatically.
CTaskDialog:: 클릭 RadiobuttonCTaskDialog::ClickRadioButton 라디오 단추를 프로그래밍 방식으로 클릭 합니다.Clicks a radio button programmatically.
CTaskDialog::D oModalCTaskDialog::DoModal CTaskDialog를 표시합니다.Displays the CTaskDialog.
CTaskDialog:: GetCommonButtonCountCTaskDialog::GetCommonButtonCount 사용할 수 있는 일반 단추 수를 검색 합니다.Retrieves the number of common buttons available.
CTaskDialog:: GetCommonButtonFlagCTaskDialog::GetCommonButtonFlag 표준 Windows 단추를 클래스와 연결 된 일반 단추 형식으로 변환 합니다 CTaskDialog .Converts a standard Windows button to the common button type associated with the CTaskDialog class.
CTaskDialog:: GetCommonButtonIdCTaskDialog::GetCommonButtonId 클래스와 연결 된 공통 단추 형식 중 하나 CTaskDialog 를 표준 Windows 단추로 변환 합니다.Converts one of the common button types associated with the CTaskDialog class to a standard Windows button.
CTaskDialog:: GetOptionsCTaskDialog::GetOptions 이에 대 한 옵션 플래그를 반환 합니다 CTaskDialog .Returns the option flags for this CTaskDialog.
CTaskDialog:: GetSelectedCommandControlIDCTaskDialog::GetSelectedCommandControlID 선택한 명령 단추 컨트롤을 반환 합니다.Returns the selected command button control.
CTaskDialog:: GetSelectedRadioButtonIDCTaskDialog::GetSelectedRadioButtonID 선택 된 라디오 단추를 반환 합니다.Returns the selected radio button.
CTaskDialog:: GetVerificationCheckboxStateCTaskDialog::GetVerificationCheckboxState 확인 확인란의 상태를 검색 합니다.Retrieves the state of the verification check box.
CTaskDialog:: IsCommandControlEnabledCTaskDialog::IsCommandControlEnabled 명령 단추 컨트롤 또는 일반 단추를 사용할 수 있는지 여부를 결정 합니다.Determines whether a command button control or common button is enabled.
CTaskDialog:: IsRadioButtonEnabledCTaskDialog::IsRadioButtonEnabled 라디오 단추를 사용할 수 있는지 여부를 확인 합니다.Determines whether a radio button is enabled.
CTaskDialog:: IsSupportedCTaskDialog::IsSupported 응용 프로그램을 실행 하는 컴퓨터에서을 지원 하는지 여부를 확인 CTaskDialog 합니다.Determines whether the computer that is running the application supports the CTaskDialog.
CTaskDialog:: LoadCommandControlsCTaskDialog::LoadCommandControls 문자열 테이블의 데이터를 사용 하 여 명령 단추 컨트롤을 추가 합니다.Adds command button controls by using data from the string table.
CTaskDialog:: LoadRadioButtonsCTaskDialog::LoadRadioButtons 문자열 테이블의 데이터를 사용 하 여 라디오 단추를 추가 합니다.Adds radio buttons by using data from the string table.
CTaskDialog:: NavigateToCTaskDialog::NavigateTo 포커스를 다른로 이동 합니다 CTaskDialog .Transfers the focus to another CTaskDialog.
CTaskDialog:: OnCommandControlClickCTaskDialog::OnCommandControlClick 사용자가 명령 단추 컨트롤을 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks a command button control.
CTaskDialog:: OnCreateCTaskDialog::OnCreate 프레임 워크는를 만든 후이 메서드를 호출 합니다 CTaskDialog .The framework calls this method after it creates the CTaskDialog.
CTaskDialog:: OnDestroyCTaskDialog::OnDestroy 프레임 워크는를 소멸 하기 바로 전에이 메서드를 호출 합니다 CTaskDialog .The framework calls this method immediately before it destroys the CTaskDialog.
CTaskDialog:: OnExpandButtonClickCTaskDialog::OnExpandButtonClick 사용자가 확장 단추를 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks on the expansion button.
CTaskDialog:: OnHelpCTaskDialog::OnHelp 사용자가 도움말을 요청 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user requests help.
CTaskDialog:: Onhyperlink 클릭CTaskDialog::OnHyperlinkClick 사용자가 하이퍼링크를 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks on a hyperlink.
CTaskDialog:: OnInitCTaskDialog::OnInit 프레임 워크는가 초기화 될 때이 메서드를 호출 합니다 CTaskDialog .The framework calls this method when the CTaskDialog is initialized.
CTaskDialog:: OnNavigatePageCTaskDialog::OnNavigatePage 프레임 워크는 사용자가의 컨트롤과 관련 하 여 포커스를 이동할 때이 메서드를 호출 합니다 CTaskDialog .The framework calls this method when the user moves the focus with regard to controls on the CTaskDialog.
CTaskDialog:: OnRadioButtonClickCTaskDialog::OnRadioButtonClick 사용자가 라디오 단추 컨트롤을 선택 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user selects a radio button control.
CTaskDialog:: OnTimerCTaskDialog::OnTimer 프레임 워크는 타이머가 만료 될 때이 메서드를 호출 합니다.The framework calls this method when the timer expires.
CTaskDialog:: OnVerificationCheckboxClickCTaskDialog::OnVerificationCheckboxClick 사용자가 확인 확인란을 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks the verification check box.
CTaskDialog:: RemoveAllCommandControlsCTaskDialog::RemoveAllCommandControls 에서 모든 명령 컨트롤을 제거 합니다 CTaskDialog .Removes all the command controls from the CTaskDialog.
CTaskDialog:: RemoveAllRadioButtonsCTaskDialog::RemoveAllRadioButtons 에서 라디오 단추를 모두 제거 합니다 CTaskDialog .Removes all the radio buttons from the CTaskDialog.
CTaskDialog:: SetCommandControlOptionsCTaskDialog::SetCommandControlOptions 에서 명령 단추 컨트롤을 업데이트 CTaskDialog 합니다.Updates a command button control on the CTaskDialog.
CTaskDialog:: SetCommonButtonOptionsCTaskDialog::SetCommonButtonOptions 사용할 수 있는 공용 단추의 하위 집합을 업데이트 하 고 UAC 권한 상승이 필요 합니다.Updates a subset of common buttons to be enabled and require UAC elevation.
CTaskDialog:: SetCommonButtonsCTaskDialog::SetCommonButtons 에 일반 단추를 추가 CTaskDialog 합니다.Adds common buttons to the CTaskDialog.
CTaskDialog:: SetContentCTaskDialog::SetContent 의 콘텐츠를 업데이트 합니다 CTaskDialog .Updates the content of the CTaskDialog.
CTaskDialog:: SetDefaultCommandControlCTaskDialog::SetDefaultCommandControl 기본 명령 단추 컨트롤을 지정 합니다.Specifies the default command button control.
CTaskDialog:: SetDefaultRadioButtonCTaskDialog::SetDefaultRadioButton 기본 라디오 단추를 지정 합니다.Specifies the default radio button.
CTaskDialog:: SetDialogWidthCTaskDialog::SetDialogWidth 의 너비를 조정 합니다 CTaskDialog .Adjusts the width of the CTaskDialog.
CTaskDialog:: SetExpansionAreaCTaskDialog::SetExpansionArea 의 확장 영역을 업데이트 합니다 CTaskDialog .Updates the expansion area of the CTaskDialog.
CTaskDialog:: SetFooterIconCTaskDialog::SetFooterIcon 의 바닥글 아이콘을 업데이트 합니다 CTaskDialog .Updates the footer icon for the CTaskDialog.
CTaskDialog:: SetFooterTextCTaskDialog::SetFooterText 의 바닥글에 있는 텍스트를 업데이트 CTaskDialog 합니다.Updates the text on the footer of the CTaskDialog.
CTaskDialog:: SetMainIconCTaskDialog::SetMainIcon 의 주 아이콘을 업데이트 합니다 CTaskDialog .Updates the main icon of the CTaskDialog.
CTaskDialog:: SetMainInstructionCTaskDialog::SetMainInstruction 의 주 명령을 업데이트 합니다 CTaskDialog .Updates the main instruction of the CTaskDialog.
CTaskDialog:: SetOptionsCTaskDialog::SetOptions 에 대 한 옵션을 구성 CTaskDialog 합니다.Configures the options for the CTaskDialog.
CTaskDialog:: SetProgressBarMarqueeCTaskDialog::SetProgressBarMarquee 의 움직이는 텍스트 막대를 구성 하 CTaskDialog 고 대화 상자에 추가 합니다.Configures a marquee bar for the CTaskDialog and adds it to the dialog box.
CTaskDialog:: SetProgressBarPositionCTaskDialog::SetProgressBarPosition 진행률 표시줄의 위치를 조정 합니다.Adjusts the position of the progress bar.
CTaskDialog:: SetProgressBarRangeCTaskDialog::SetProgressBarRange 진행률 표시줄의 범위를 조정 합니다.Adjusts the range of the progress bar.
CTaskDialog:: SetProgressBarStateCTaskDialog::SetProgressBarState 진행률 표시줄의 상태를 설정 하 고에 표시 합니다 CTaskDialog .Sets the state of the progress bar and displays it on the CTaskDialog.
CTaskDialog:: SetRadioButtonOptionsCTaskDialog::SetRadioButtonOptions 라디오 단추를 사용 하거나 사용 하지 않도록 설정 합니다.Enables or disables a radio button.
CTaskDialog:: SetVerificationCheckboxCTaskDialog::SetVerificationCheckbox 확인 확인란의 선택 상태를 설정 합니다.Sets the checked state of the verification check box.
CTaskDialog:: SetVerificationCheckboxTextCTaskDialog::SetVerificationCheckboxText 확인 확인란의 오른쪽에 있는 텍스트를 설정 합니다.Sets the text on the right side of the verification check box.
CTaskDialog:: SetWindowTitleCTaskDialog::SetWindowTitle 의 제목을 설정 합니다 CTaskDialog .Sets the title of the CTaskDialog.
CTaskDialog:: ShowDialogCTaskDialog::ShowDialog 을 만들어 표시 CTaskDialog 합니다.Creates and displays a CTaskDialog.
CTaskDialog:: TaskDialogCallbackCTaskDialog::TaskDialogCallback 프레임 워크는 다양 한 Windows 메시지에 대 한 응답으로이를 호출 합니다.The framework calls this in response to various Windows messages.

데이터 멤버Data Members

NameName 설명Description
m_aButtons 에 대 한 명령 단추 컨트롤의 배열입니다 CTaskDialog .The array of command button controls for the CTaskDialog.
m_aRadioButtons 에 대 한 라디오 단추 컨트롤의 배열입니다 CTaskDialog .The array of radio button controls for the CTaskDialog.
m_bVerified TRUE 확인 확인란을 선택 했음을 나타냅니다. FALSE 는 그렇지 않음을 나타냅니다.TRUE indicates the verification check box is checked; FALSE indicates it is not.
m_footerIcon 의 바닥글에 있는 아이콘 CTaskDialog 입니다.The icon in the footer of the CTaskDialog.
m_hWnd 의 창에 대 한 핸들 CTaskDialog 입니다.A handle to the window for the CTaskDialog.
m_mainIcon 의 주 아이콘입니다 CTaskDialog .The main icon of the CTaskDialog.
m_nButtonDisabled 사용할 수 없는 일반 단추를 나타내는 마스크입니다.A mask that indicates which of the common buttons are disabled.
m_nButtonElevation UAC 권한 상승이 필요한 일반 단추를 나타내는 마스크입니다.A mask that indicates which of the common buttons require UAC elevation.
m_nButtonId 선택한 명령 단추 컨트롤의 ID입니다.The ID of the selected command button control.
m_nCommonButton 에 표시 되는 일반적인 단추를 나타내는 마스크입니다 CTaskDialog .A mask that indicates which common buttons are displayed on the CTaskDialog.
m_nDefaultCommandControl 이 표시 될 때 선택 되는 명령 단추 컨트롤의 ID입니다 CTaskDialog .The ID of the command button control that is selected when the CTaskDialog is displayed.
m_nDefaultRadioButton 이 표시 될 때 선택 되는 라디오 단추 컨트롤의 ID입니다 CTaskDialog .The ID of the radio button control that is selected when the CTaskDialog is displayed.
m_nFlags 에 대 한 옵션을 나타내는 마스크입니다 CTaskDialog .A mask that indicates the options for the CTaskDialog.
m_nProgressPos 진행률 표시줄의 현재 위치입니다.The current position for the progress bar. 이 값은 m_nProgressRangeMinm_nProgressRangeMax 사이의 값이어야 합니다.This value must be between m_nProgressRangeMin and m_nProgressRangeMax.
m_nProgressRangeMax 진행률 표시줄의 최대값입니다.The maximum value for the progress bar.
m_nProgressRangeMin 진행률 표시줄의 최소값입니다.The minimum value for the progress bar.
m_nProgressState 진행률 표시줄의 상태입니다.The state of the progress bar. 자세한 내용은 Ctaskdialog:: SetProgressBarState를 참조 하세요.For more information, see CTaskDialog::SetProgressBarState.
m_nRadioId 선택 된 라디오 단추 컨트롤의 ID입니다.The ID of the selected radio button control.
m_nWidth CTaskDialog의 너비(픽셀)입니다.The width of the CTaskDialog in pixels.
m_strCollapse CTaskDialog확장 된 정보를 숨길 때 확장 상자 오른쪽에 표시 되는 문자열입니다.The string the CTaskDialog displays to the right of the expansion box when the expanded information is hidden.
m_strContent 의 콘텐츠 문자열입니다 CTaskDialog .The content string of the CTaskDialog.
m_strExpand CTaskDialog확장 된 정보가 표시 될 때 확장 상자 오른쪽에 표시 되는 문자열입니다.The string the CTaskDialog displays to the right of the expansion box when the expanded information is displayed.
m_strFooter 의 바닥글 CTaskDialog 입니다.The footer of the CTaskDialog.
m_strInformation 에 대 한 확장 된 정보 CTaskDialog 입니다.The expanded information for the CTaskDialog.
m_strMainInstruction 의 기본 명령 CTaskDialog 입니다.The main instruction of the CTaskDialog.
m_strTitle CTaskDialog의 제목입니다.The title of the CTaskDialog.
m_strVerification CTaskDialog 확인 확인란의 오른쪽에 표시 하는 문자열입니다.The string that the CTaskDialog displays to the right of the verification check box.

설명Remarks

CTaskDialog클래스는 표준 Windows 메시지 상자를 대체 하며 사용자 로부터 정보를 수집 하는 새 컨트롤과 같은 추가 기능을 포함 합니다.The CTaskDialog class replaces the standard Windows message box and has additional functionality such as new controls to gather information from the user. 이 클래스는 Visual Studio 2010 이상 버전의 MFC 라이브러리에 있습니다.This class is in the MFC library in Visual Studio 2010 and later. CTaskDialog Windows Vista부터 사용할 수 있습니다.The CTaskDialog is available starting with Windows Vista. 이전 버전의 Windows에서는 개체를 표시할 수 없습니다 CTaskDialog .Earlier versions of Windows cannot display the CTaskDialog object. CTaskDialog::IsSupported현재 사용자가 작업 대화 상자를 표시할 수 있는지 여부를 런타임에 확인 하는 데 사용 합니다.Use CTaskDialog::IsSupported to determine at runtime whether the current user can display the task dialog box. 표준 Windows 메시지 상자는 계속 지원 됩니다.The standard Windows message box is still supported.

CTaskDialog 유니코드 라이브러리를 사용 하 여 응용 프로그램을 빌드하는 경우에만 사용할 수 있습니다.The CTaskDialog is available only when you build your application by using the Unicode library.

에는 CTaskDialog 두 개의 다른 생성자가 있습니다.The CTaskDialog has two different constructors. 한 생성자를 사용 하 여 두 개의 명령 단추와 최대 6 개의 일반 단추 컨트롤을 지정할 수 있습니다.One constructor enables you to specify two command buttons and a maximum of six regular button controls. 을 만든 후 명령 단추를 더 추가할 수 있습니다 CTaskDialog .You can add more command buttons after you create the CTaskDialog. 두 번째 생성자는 명령 단추를 지원 하지 않지만, 일반 단추 컨트롤을 무제한으로 추가할 수 있습니다.The second constructor does not support any command buttons, but you can add an unlimited number of regular button controls. 생성자에 대 한 자세한 내용은 ctaskdialog:: CTaskDialog를 참조 하십시오.For more information about the constructors, see CTaskDialog::CTaskDialog.

다음 그림에서는 CTaskDialog 일부 컨트롤의 위치를 보여 주는 샘플을 보여 줍니다.The following image shows a sample CTaskDialog to illustrate the location of some of the controls.

CTaskDialog의 예Example of CTaskDialog
CTaskDialog 샘플CTaskDialog Sample

요구 사항Requirements

필요한 최소 운영 체제: Windows VistaMinimum required operating system: Windows Vista

헤더: afxtaskdialogHeader: afxtaskdialog.h

CTaskDialog:: AddCommandControlCTaskDialog::AddCommandControl

에 새 명령 단추 컨트롤을 추가 CTaskDialog 합니다.Adds a new command button control to the CTaskDialog.

void AddCommandControl(
    int nCommandControlID,
    const CString& strCaption,
    BOOL bEnabled = TRUE,
    BOOL bRequiresElevation = FALSE);

매개 변수Parameters

nCommandControlIDnCommandControlID
진행 명령 컨트롤 id 번호입니다.[in] The command control identification number.

strCaptionstrCaption
진행 CTaskDialog 가 사용자에 게 표시 하는 문자열입니다.[in] The string that the CTaskDialog displays to the user. 이 문자열을 사용 하 여 명령의 용도를 설명 합니다.Use this string to explain the purpose of the command.

bEnabledbEnabled
진행 새 단추를 사용할 수 있는지 여부를 나타내는 부울 매개 변수입니다.[in] A Boolean parameter that indicates if the new button is enabled or disabled.

bRequiresElevationbRequiresElevation
진행 명령에 권한 상승이 필요한 지 여부를 나타내는 부울 매개 변수입니다.[in] A Boolean parameter that indicates whether a command requires elevation.

설명Remarks

에는 CTaskDialog Class 무제한 개수의 명령 단추 컨트롤이 표시 될 수 있습니다.The CTaskDialog Class can display an unlimited number of command button controls. 그러나가 CTaskDialog 명령 단추 컨트롤을 표시 하는 경우 최대 6 개의 단추를 표시할 수 있습니다.However, if a CTaskDialog displays any command button controls, it can display a maximum of six buttons. CTaskDialog 명령 단추 컨트롤이 없으면 개수에 제한 없이 단추를 표시할 수 있습니다.If a CTaskDialog has no command button controls, it can display an unlimited number of buttons.

사용자가 명령 단추 컨트롤을 선택 하면이 CTaskDialog 닫힙니다.When the user selects a command button control, the CTaskDialog closes. 응용 프로그램에서 Ctaskdialog::D oModal을 사용 하 여 대화 상자를 표시 하는 경우 DoModal 선택한 명령 단추 컨트롤의 ncommandcontrolid 를 반환 합니다.If your application displays the dialog box by using CTaskDialog::DoModal, DoModal returns the nCommandControlID of the selected command button control.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog:: AddRadioButtonCTaskDialog::AddRadioButton

에 라디오 단추를 추가 CTaskDialog 합니다.Adds a radio button to the CTaskDialog.

void CTaskDialog::AddRadioButton(
    int nRadioButtonID,
    const CString& strCaption,
    BOOL bEnabled = TRUE);

매개 변수Parameters

nRadioButtonIDnRadioButtonID
진행 라디오 단추의 id 번호입니다.[in] The identification number of the radio button.

strCaptionstrCaption
진행 가 CTaskDialog 라디오 단추 옆에 표시 하는 문자열입니다.[in] The string that the CTaskDialog displays next to the radio button.

bEnabledbEnabled
진행 라디오 단추를 사용할 수 있는지 여부를 나타내는 부울 매개 변수입니다.[in] A Boolean parameter that indicates whether the radio button is enabled.

설명Remarks

Ctaskdialog 클래스 의 라디오 단추를 사용 하 여 사용자 로부터 정보를 수집할 수 있습니다.The radio buttons for the CTaskDialog Class enable you to gather information from the user. Ctaskdialog:: GetSelectedRadioButtonID 함수를 사용 하 여 선택한 라디오 단추를 확인 합니다.Use the function CTaskDialog::GetSelectedRadioButtonID to determine which radio button is selected.

에서는 CTaskDialog nRadioButtonID 매개 변수가 각 라디오 단추에 대해 고유할 필요가 없습니다.The CTaskDialog does not require that the nRadioButtonID parameters are unique for each radio button. 그러나 각 라디오 단추에 대해 고유한 식별자를 사용 하지 않으면 예기치 않은 동작이 발생할 수 있습니다.However, you may experience unexpected behavior if you do not use a distinct identifier for each radio button.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog:: 클릭 CommandcontrolCTaskDialog::ClickCommandControl

명령 단추 컨트롤이 나 일반 단추를 프로그래밍 방식으로 클릭 합니다.Clicks a command button control or common button programmatically.

protected:
void ClickCommandControl(int nCommandControlID) const;

매개 변수Parameters

nCommandControlIDnCommandControlID
진행 클릭할 컨트롤의 명령 ID입니다.[in] The command ID of the control to click.

설명Remarks

이 메서드는 windows 메시지 TDM_CLICK_BUTTON를 생성 합니다.This method generates the windows message TDM_CLICK_BUTTON.

CTaskDialog:: 클릭 RadiobuttonCTaskDialog::ClickRadioButton

라디오 단추를 프로그래밍 방식으로 클릭 합니다.Clicks a radio button programmatically.

protected:
void ClickRadioButton(int nRadioButtonID) const;

매개 변수Parameters

nRadioButtonIDnRadioButtonID
진행 클릭할 라디오 단추의 ID입니다.[in] The ID of the radio button to click.

설명Remarks

이 메서드는 windows 메시지 TDM_CLICK_RADIO_BUTTON를 생성 합니다.This method generates the windows message TDM_CLICK_RADIO_BUTTON.

CTaskDialog:: CTaskDialogCTaskDialog::CTaskDialog

Ctaskdialog 클래스의 인스턴스를 만듭니다.Creates an instance of the CTaskDialog Class.

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nCommonButtons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

매개 변수Parameters

strContentstrContent
진행 의 내용에 사용할 문자열 CTaskDialog 입니다.[in] The string to use for the content of the CTaskDialog.

strMainInstructionstrMainInstruction
진행 의 기본 명령 CTaskDialog 입니다.[in] The main instruction of the CTaskDialog.

strTitlestrTitle
진행 의 제목 CTaskDialog 입니다.[in] The title of the CTaskDialog.

nCommonButtonsnCommonButtons
진행 에 추가할 공용 단추의 마스크입니다 CTaskDialog .[in] A mask of the common buttons to add to the CTaskDialog.

nTaskDialogOptionsnTaskDialogOptions
진행 에 사용할 옵션 집합입니다 CTaskDialog .[in] The set of options to use for the CTaskDialog.

strFooterstrFooter
진행 바닥글로 사용할 문자열입니다.[in] The string to use as the footer.

nIDCommandControlsFirstnIDCommandControlsFirst
진행 첫 번째 명령의 문자열 ID입니다.[in] The string ID of the first command.

nIDCommandControlsLastnIDCommandControlsLast
진행 마지막 명령의 문자열 ID입니다.[in] The string ID of the last command.

설명Remarks

를 응용 프로그램에 추가 하는 방법에는 두 가지가 있습니다 CTaskDialog .There are two ways that you can add a CTaskDialog to your application. 첫 번째 방법은 생성자 중 하나를 사용 하 여를 만들고 CTaskDialog Ctaskdialog::D omodal을 사용 하 여 표시 하는 것입니다.The first way is to use one of the constructors to create a CTaskDialog and display it using CTaskDialog::DoModal. 두 번째 방법은 정적 함수 Ctaskdialog:: ShowDialog를 사용 하는 것입니다 .이 함수를 사용 하면 CTaskDialog 개체를 명시적으로 만들지 않고도를 표시할 수 있습니다 CTaskDialog .The second way is to use the static function CTaskDialog::ShowDialog, which enables you to display a CTaskDialog without explicitly creating a CTaskDialog object.

두 번째 생성자는 응용 프로그램의 리소스 파일에 있는 데이터를 사용 하 여 명령 단추 컨트롤을 만듭니다.The second constructor creates command button controls by using data from the resource file of your application. 리소스 파일의 문자열 테이블에는 문자열 Id가 연결 된 여러 문자열이 있습니다.The string table in the resource file has several strings with associated string IDs. 이 메서드는 nIDCommandControlsFirstnCommandControlsLast사이에 있는 문자열 테이블의 유효한 각 항목에 대 한 명령 단추 컨트롤을 추가 합니다.This method adds a command button control for each valid entry in the string table between nIDCommandControlsFirst and nCommandControlsLast, inclusive. 이러한 명령 단추 컨트롤의 경우 문자열 테이블의 문자열은 컨트롤의 캡션입니다. 문자열 ID는 컨트롤의 ID입니다.For these command button controls, the string in the string table is the control's caption and the string ID is the control's ID.

유효한 옵션 목록은 Ctaskdialog:: SetOptions 를 참조 하세요.See CTaskDialog::SetOptions for a list of valid options.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::D oModalCTaskDialog::DoModal

를 표시 CTaskDialog 하 고 모달로 만듭니다.Shows the CTaskDialog and makes it modal.

INT_PTR DoModal (HWND hParent = ::GetActiveWindow());

매개 변수Parameters

hParenthParent
진행 의 부모 창 CTaskDialog 입니다.[in] The parent window for the CTaskDialog.

반환 값Return Value

사용자가 선택한 항목에 해당 하는 정수입니다.An integer that corresponds to the selection made by the user.

설명Remarks

Ctaskdialog의이 인스턴스를 표시 합니다.Displays this instance of the CTaskDialog. 그런 다음 응용 프로그램은 사용자가 대화 상자를 닫을 때까지 기다립니다.The application then waits for the user to close the dialog box.

CTaskDialog 사용자가 일반 단추 또는 명령 링크 컨트롤을 선택 하거나를 닫을 때 닫힙니다 CTaskDialog .The CTaskDialog closes when the user selects a common button, a command link control, or closes the CTaskDialog. 반환 값은 사용자가 대화 상자를 닫은 방법을 나타내는 식별자입니다.The return value is the identifier that indicates how the user closed the dialog box.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: GetCommonButtonCountCTaskDialog::GetCommonButtonCount

공용 단추 수를 검색 합니다.Retrieves the number of common buttons.

int GetCommonButtonCount() const;

반환 값Return Value

사용할 수 있는 일반 단추 수입니다.The number of common buttons available.

설명Remarks

공용 단추는 ctaskdialog:: ctaskdialog에 제공 하는 기본 단추입니다.The common buttons are the default buttons that you provide to CTaskDialog::CTaskDialog. Ctaskdialog 클래스 는 대화 상자 아래쪽의 단추를 표시 합니다.The CTaskDialog Class displays the buttons along the bottom of the dialog box.

열거 되는 단추의 목록에는 Ctrl. h가 제공 됩니다.The enumerated list of buttons is provided in CommCtrl.h.

CTaskDialog:: GetCommonButtonFlagCTaskDialog::GetCommonButtonFlag

표준 Windows 단추를 Ctaskdialog 클래스와 연결 된 일반 단추 형식으로 변환 합니다.Converts a standard Windows button to the common button type associated with the CTaskDialog Class.

int GetCommonButtonFlag(int nButtonId) const;

매개 변수Parameters

nButtonIdnButtonId
진행 표준 Windows 단추 값입니다.[in] The standard Windows button value.

반환 값Return Value

해당 하는 CTaskDialog 공용 단추의 값입니다.The value of the corresponding CTaskDialog common button. 해당 하는 공통 단추가 없으면이 메서드는 0을 반환 합니다.If there is no corresponding common button, this method returns 0.

CTaskDialog:: GetCommonButtonIdCTaskDialog::GetCommonButtonId

Ctaskdialog 클래스 와 연결 된 공통 단추 형식 중 하나를 표준 Windows 단추로 변환 합니다.Converts one of the common button types associated with the CTaskDialog Class to a standard Windows button.

int GetCommonButtonId(int nFlag);

매개 변수Parameters

nFlagnFlag
진행 클래스와 연결 된 공용 단추 형식 CTaskDialog 입니다.[in] The common button type associated with the CTaskDialog class.

반환 값Return Value

해당 표준 Windows 단추의 값입니다.The value of the corresponding standard Windows button. 해당 하는 Windows 단추가 없으면 메서드는 0을 반환 합니다.If there is no corresponding Windows button, the method returns 0.

CTaskDialog:: GetOptionsCTaskDialog::GetOptions

이에 대 한 옵션 플래그를 반환 합니다 CTaskDialog .Returns the option flags for this CTaskDialog.

int GetOptions() const;

반환 값Return Value

에 대 한 플래그 CTaskDialog 입니다.The flags for the CTaskDialog.

설명Remarks

Ctaskdialog 클래스에 사용할 수 있는 옵션에 대 한 자세한 내용은 Ctaskdialog:: SetOptions를 참조 하세요.For more information about the options available to the CTaskDialog Class, see CTaskDialog::SetOptions.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: GetSelectedCommandControlIDCTaskDialog::GetSelectedCommandControlID

선택한 명령 단추 컨트롤을 반환 합니다.Returns the selected command button control.

int GetSelectedCommandControlID() const;

반환 값Return Value

현재 선택 된 명령 단추 컨트롤의 ID입니다.The ID of the currently selected command button control.

설명Remarks

사용자가 선택한 명령 단추의 ID를 검색 하기 위해이 메서드를 사용할 필요는 없습니다.You do not have to use this method to retrieve the ID of the command button that the user selected. 이 ID는 Ctaskdialog::D oModal 또는 Ctaskdialog:: ShowDialog에서 반환 됩니다.That ID is returned by either CTaskDialog::DoModal or CTaskDialog::ShowDialog.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog:: GetSelectedRadioButtonIDCTaskDialog::GetSelectedRadioButtonID

선택 된 라디오 단추를 반환 합니다.Returns the selected radio button.

int GetSelectedRadioButtonID() const;

반환 값Return Value

선택 된 라디오 단추의 ID입니다.The ID of the selected radio button.

설명Remarks

사용자가 대화 상자를 닫은 후이 메서드를 사용 하 여 선택한 라디오 단추를 검색할 수 있습니다.You can use this method after the user closes the dialog box to retrieve the selected radio button.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog:: GetVerificationCheckboxStateCTaskDialog::GetVerificationCheckboxState

확인 확인란의 상태를 검색 합니다.Retrieves the state of the verification check box.

BOOL GetVerificationCheckboxState() const;

반환 값Return Value

확인란이 선택 되어 있으면 TRUE이 고, 그렇지 않으면 FALSE입니다.TRUE if the check box is checked, FALSE if it is not.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog:: IsCommandControlEnabledCTaskDialog::IsCommandControlEnabled

명령 단추 컨트롤이 나 단추를 사용할 수 있는지 여부를 확인 합니다.Determines whether a command button control or button is enabled.

BOOL IsCommandControlEnabled(int nCommandControlID) const;

매개 변수Parameters

nCommandControlIDnCommandControlID
진행 테스트할 명령 단추 컨트롤 또는 단추의 ID입니다.[in] The ID of the command button control or button to test.

반환 값Return Value

컨트롤을 사용할 수 있으면 TRUE이 고, 그렇지 않으면 FALSE입니다.TRUE if the control is enabled, FALSE if it is not.

설명Remarks

이 메서드를 사용 하 여 두 명령 단추 컨트롤과 * 클래스의 공통 단추를 모두 사용할 수 있는지 확인할 수 있습니다 CTaskDialog .You can use this method to determine the availability of both command button controls and the common buttons of the CTaskDialog Class*.

Ncommandcontrolid 가 일반 단추나 명령 단추 컨트롤에 대 한 유효한 식별자가 아닌 경우 CTaskDialog 이 메서드는 예외를 throw 합니다.If nCommandControlID is not a valid identifier for either a common CTaskDialog button or a command button control, this method throws an exception.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog:: IsRadioButtonEnabledCTaskDialog::IsRadioButtonEnabled

라디오 단추를 사용할 수 있는지 여부를 확인 합니다.Determines whether a radio button is enabled.

BOOL IsRadioButtonEnabled(int nRadioButtonID) const;

매개 변수Parameters

nRadioButtonIDnRadioButtonID
진행 테스트할 라디오 단추의 ID입니다.[in] The ID of the radio button to test.

반환 값Return Value

라디오 단추가 사용 되 면 TRUE이 고, 그렇지 않으면 FALSE입니다.TRUE if the radio button is enabled, FALSE if it is not.

설명Remarks

NRadioButtonID 가 라디오 단추에 대 한 유효한 식별자가 아닌 경우이 메서드는 예외를 throw 합니다.If nRadioButtonID is not a valid identifier for a radio button, this method throws an exception.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog:: IsSupportedCTaskDialog::IsSupported

응용 프로그램을 실행 하는 컴퓨터에서을 지원 하는지 여부를 확인 CTaskDialog 합니다.Determines whether the computer that is running the application supports the CTaskDialog.

static BOOL IsSupported();

반환 값Return Value

컴퓨터에서를 지원 하면 TRUE CTaskDialog 이 고, 그렇지 않으면입니다. 그렇지 않으면 FALSE입니다.TRUE if the computer supports the CTaskDialog; FALSE otherwise.

설명Remarks

응용 프로그램을 실행 하는 컴퓨터에서 클래스를 지 원하는 경우이 함수를 사용 하 여 런타임에 확인 CTaskDialog 합니다.Use this function to determine at runtime if the computer that is running your application supports the CTaskDialog class. 컴퓨터에서를 지원 하지 않는 경우 CTaskDialog 사용자에 게 정보를 전달 하는 다른 방법을 제공 해야 합니다.If the computer does not support the CTaskDialog, you should provide another method of communicating information to the user. CTaskDialog클래스를 지원 하지 않는 컴퓨터에서를 사용 하려고 하면 응용 프로그램의 작동이 중단 됩니다 CTaskDialog .Your application will crash if it tries to use a CTaskDialog on a computer that does not support the CTaskDialog class.

예제Example

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog:: LoadCommandControlsCTaskDialog::LoadCommandControls

문자열 테이블의 데이터를 사용 하 여 명령 단추 컨트롤을 추가 합니다.Adds command button controls by using data from the string table.

void LoadCommandControls(
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast);

매개 변수Parameters

nIDCommandControlsFirstnIDCommandControlsFirst
진행 첫 번째 명령의 문자열 ID입니다.[in] The string ID of the first command.

nIDCommandControlsLastnIDCommandControlsLast
진행 마지막 명령의 문자열 ID입니다.[in] The string ID of the last command.

설명Remarks

이 메서드는 응용 프로그램의 리소스 파일에 있는 데이터를 사용 하 여 명령 단추 컨트롤을 만듭니다.This method creates command button controls by using data from the resource file of your application. 리소스 파일의 문자열 테이블에는 문자열 Id가 연결 된 여러 문자열이 있습니다.The string table in the resource file has several strings with associated string IDs. 이 메서드를 사용 하 여 추가 된 새 명령 단추 컨트롤은 컨트롤의 캡션에 대 한 문자열 및 컨트롤 ID의 문자열 ID를 사용 합니다.New command button controls added by using this method use the string for the control's caption and the string ID for the control's ID. 선택한 문자열 범위는 nIDCommandControlsFirstnCommandControlsLast(포함)에 의해 제공 됩니다.The range of strings selected is provided by nIDCommandControlsFirst and nCommandControlsLast, inclusive. 범위에 빈 항목이 있는 경우 메서드는 해당 항목에 대 한 명령 단추 컨트롤을 추가 하지 않습니다.If there is an empty entry in the range, the method does not add a command button control for that entry.

기본적으로 새 명령 단추 컨트롤이 활성화 되며 권한 상승이 필요 하지 않습니다.By default, new command button controls are enabled and do not require elevation.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog:: LoadRadioButtonsCTaskDialog::LoadRadioButtons

문자열 테이블의 데이터를 사용 하 여 라디오 단추 컨트롤을 추가 합니다.Adds radio button controls by using data from the string table.

void LoadRadioButtons(
    int nIDRadioButtonsFirst,
    int nIDRadioButtonsLast);

매개 변수Parameters

nIDRadioButtonsFirstnIDRadioButtonsFirst
진행 첫 번째 라디오 단추의 문자열 ID입니다.[in] The string ID of the first radio button.

nIDRadioButtonsLastnIDRadioButtonsLast
진행 마지막 라디오 단추의 문자열 ID입니다.[in] The string ID of the last radio button.

설명Remarks

이 메서드는 응용 프로그램의 리소스 파일에 있는 데이터를 사용 하 여 라디오 단추를 만듭니다.This method creates radio buttons by using data from the resource file of your application. 리소스 파일의 문자열 테이블에는 문자열 Id가 연결 된 여러 문자열이 있습니다.The string table in the resource file has several strings with associated string IDs. 이 메서드를 사용 하 여 추가 된 새 라디오 단추는 라디오 단추 캡션에 문자열을 사용 하 고 라디오 단추의 ID에 문자열 ID를 사용 합니다.New radio buttons added by using this method use the string for the radio button's caption and the string ID for the radio button's ID. 선택한 문자열 범위는 nIDRadioButtonsFirstnRadioButtonsLast(포함)에 의해 제공 됩니다.The range of strings selected is provided by nIDRadioButtonsFirst and nRadioButtonsLast, inclusive. 범위에 빈 항목이 있는 경우 메서드는 해당 항목에 대 한 라디오 단추를 추가 하지 않습니다.If there is an empty entry in the range, the method does not add a radio button for that entry.

기본적으로 새 라디오 단추를 사용할 수 있습니다.By default, new radio buttons are enabled.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog:: NavigateToCTaskDialog::NavigateTo

포커스를 다른로 이동 합니다 CTaskDialog .Transfers the focus to another CTaskDialog.

protected:
void NavigateTo(CTaskDialog& oTaskDialog) const;

매개 변수Parameters

oTaskDialogoTaskDialog
진행 CTaskDialog 포커스를 받는입니다.[in] The CTaskDialog that receives the focus.

설명Remarks

이 메서드는 CTaskDialog Otaskdialog가 표시 될 때 현재를 숨깁니다.This method hides the current CTaskDialog when it displays the oTaskDialog. Otaskdialog 는 현재와 동일한 위치에 표시 됩니다 CTaskDialog .The oTaskDialog is displayed in the same location as the current CTaskDialog.

CTaskDialog:: OnCommandControlClickCTaskDialog::OnCommandControlClick

사용자가 명령 단추 컨트롤을 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks a command button control.

virtual HRESULT OnCommandControlClick(int nCommandControlID);

매개 변수Parameters

nCommandControlIDnCommandControlID
진행 사용자가 선택한 명령 단추 컨트롤의 ID입니다.[in] The ID of the command button control that the user selected.

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnCreateCTaskDialog::OnCreate

프레임 워크는를 만든 후이 메서드를 호출 합니다 CTaskDialog .The framework calls this method after it creates the CTaskDialog.

virtual HRESULT OnCreate();

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnDestroyCTaskDialog::OnDestroy

프레임 워크는를 소멸 하기 바로 전에이 메서드를 호출 합니다 CTaskDialog .The framework calls this method immediately before it destroys the CTaskDialog.

virtual HRESULT OnDestroy();

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnExpandButtonClickCTaskDialog::OnExpandButtonClick

사용자가 확장 단추를 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks on the expansion button.

virtual HRESULT OnExpandButtonClicked(BOOL bExpanded);

매개 변수Parameters

bExpanded 됨bExpanded
진행 0이 아닌 값은 추가 정보가 표시 됨을 나타냅니다. 0은 추가 정보가 숨겨져 있음을 나타냅니다.[in] A nonzero value indicates the extra information is displayed; 0 indicates the extra information is hidden.

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnHelpCTaskDialog::OnHelp

사용자가 도움말을 요청 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user requests help.

virtual HRESULT OnHelp();

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: Onhyperlink 클릭CTaskDialog::OnHyperlinkClick

사용자가 하이퍼링크를 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks on a hyperlink.

virtual HRESULT OnHyperlinkClick(const CString& strHref);

매개 변수Parameters

strHrefstrHref
진행 하이퍼링크를 나타내는 문자열입니다.[in] The string that represents the hyperlink.

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

이 메서드는 S_OK를 반환 하기 전에 ShellExecute 를 호출 합니다.This method calls ShellExecute before it returns S_OK.

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnInitCTaskDialog::OnInit

프레임 워크는가 초기화 될 때이 메서드를 호출 합니다 CTaskDialog .The framework calls this method when the CTaskDialog is initialized.

virtual HRESULT OnInit();

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnNavigatePageCTaskDialog::OnNavigatePage

프레임 워크는 Ctaskdialog:: NavigateTo 메서드에 대 한 응답으로이 메서드를 호출 합니다.The framework calls this method in response to the CTaskDialog::NavigateTo method.

virtual HRESULT OnNavigatePage();

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnRadioButtonClickCTaskDialog::OnRadioButtonClick

사용자가 라디오 단추 컨트롤을 선택 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user selects a radio button control.

virtual HRESULT OnRadioButtonClick(int nRadioButtonID);

매개 변수Parameters

nRadioButtonIDnRadioButtonID
진행 사용자가 클릭 한 라디오 단추 컨트롤의 ID입니다.[in] The ID of the radio button control that the user clicked.

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnTimerCTaskDialog::OnTimer

프레임 워크는 타이머가 만료 될 때이 메서드를 호출 합니다.The framework calls this method when the timer expires.

virtual HRESULT OnTimer(long lTime);

매개 변수Parameters

lTimelTime
진행 가 만들어지거나 타이머가 다시 설정 된 이후의 시간 (밀리초) CTaskDialog 입니다.[in] Time in milliseconds since the CTaskDialog was created or the timer was reset.

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnVerificationCheckboxClickCTaskDialog::OnVerificationCheckboxClick

사용자가 확인 확인란을 클릭 하면 프레임 워크에서이 메서드를 호출 합니다.The framework calls this method when the user clicks the verification check box.

virtual HRESULT OnVerificationCheckboxClick(BOOL bChecked);

매개 변수Parameters

bCheckedbChecked
진행 TRUE는 확인 확인란을 선택 했음을 나타냅니다. FALSE는 그렇지 않음을 나타냅니다.[in] TRUE indicates the verification check box is selected; FALSE indicates it is not.

반환 값Return Value

기본 구현에서는 S_OK을 반환 합니다.The default implementation returns S_OK.

설명Remarks

사용자 지정 동작을 구현 하려면 파생 클래스에서이 메서드를 재정의 합니다.Override this method in a derived class to implement custom behavior.

CTaskDialog:: RemoveAllCommandControlsCTaskDialog::RemoveAllCommandControls

에서 모든 명령 단추 컨트롤을 제거 합니다 CTaskDialog .Removes all the command button controls from the CTaskDialog.

void RemoveAllCommandControls();

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog:: RemoveAllRadioButtonsCTaskDialog::RemoveAllRadioButtons

에서 라디오 단추를 모두 제거 합니다 CTaskDialog .Removes all the radio buttons from the CTaskDialog.

void RemoveAllRadioButtons();

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog:: SetCommandControlOptionsCTaskDialog::SetCommandControlOptions

에서 명령 단추 컨트롤을 업데이트 CTaskDialog 합니다.Updates a command button control on the CTaskDialog.

void SetCommandControlOptions(
    int nCommandControlID,
    BOOL bEnabled,
    BOOL bRequiresElevation = FALSE);

매개 변수Parameters

nCommandControlIDnCommandControlID
진행 업데이트할 명령 컨트롤의 ID입니다.[in] The ID of the command control to update.

bEnabledbEnabled
진행 지정 된 명령 단추 컨트롤을 사용할 수 있는지 여부를 나타내는 부울 매개 변수입니다.[in] A Boolean parameter that indicates if the specified command button control is enabled or disabled.

bRequiresElevationbRequiresElevation
진행 지정 된 명령 단추 컨트롤에 권한 상승이 필요한 지 여부를 나타내는 부울 매개 변수입니다.[in] A Boolean parameter that indicates if the specified command button control requires elevation.

설명Remarks

이 메서드를 사용 하 여 명령 단추 컨트롤이 활성화 되는지 여부를 변경 하거나 클래스에 추가 된 후에 권한 상승이 필요한 지 여부를 변경할 수 CTaskDialog 있습니다.Use this method to change whether a command button control is enabled or requires elevation after it has been added to the CTaskDialog class.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog:: SetCommonButtonOptionsCTaskDialog::SetCommonButtonOptions

사용할 수 있는 공용 단추의 하위 집합을 업데이트 하 고 UAC 권한 상승을 요구 합니다.Updates a subset of common buttons to be enabled and to require UAC elevation.

void SetCommonButtonOptions(
    int nDisabledButtonMask,
    int nElevationButtonMask = 0);

매개 변수Parameters

nDisabledButtonMasknDisabledButtonMask
진행 비활성화 하는 일반 단추에 대 한 마스크입니다.[in] A mask for the common buttons to disable.

nElevationButtonMasknElevationButtonMask
진행 권한 상승이 필요한 일반 단추에 대 한 마스크입니다.[in] A mask for the common buttons that require elevation.

설명Remarks

Ctaskdialog :: ctaskdialog 생성자와 Ctaskdialog:: SetCommonButtons메서드를 사용 하 여 ctaskdialog 클래스 의 인스턴스에 사용할 수 있는 공용 단추를 설정할 수 있습니다.You can set the common buttons available to an instance of the CTaskDialog Class by using the constructor CTaskDialog::CTaskDialog and the method CTaskDialog::SetCommonButtons. CTaskDialog::SetCommonButtonOptions 는 새로운 일반 단추를 추가 하는 기능을 지원 하지 않습니다.CTaskDialog::SetCommonButtonOptions does not support adding new common buttons.

이 메서드를 사용 하 여이에 사용할 수 없는 일반 단추를 사용 하거나 사용 하지 않도록 설정 하는 경우 CTaskDialog 이 메서드는 확인 매크로를 사용 하 여 예외를 throw 합니다.If you use this method to disable or elevate a common button that is not available for this CTaskDialog, this method throws an exception by using the ENSURE macro.

이 메서드는에 사용할 수 있지만 이전에는 CTaskDialog 사용 하지 않도록 설정 했더라도 nDisabledButtonMask에 없는 모든 단추를 사용 하도록 설정 합니다.This method enables any button that is available to the CTaskDialog but is not in the nDisabledButtonMask, even if it was previously disabled. 이 메서드는 비슷한 방식으로 권한 상승을 처리 합니다. 공용 단추를 사용할 수 있지만 nElevationButtonMask에 포함 되지 않은 경우에는 권한 상승이 필요 하지 않은 일반 단추를 기록 합니다.This method treats elevation in a similar manner: it records common buttons as not requiring elevation if the common button is available but not included in nElevationButtonMask.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog:: SetCommonButtonsCTaskDialog::SetCommonButtons

에 일반 단추를 추가 CTaskDialog 합니다.Adds common buttons to the CTaskDialog.

void SetCommonButtons(
    int nButtonMask,
    int nDisabledButtonMask = 0,
    int nElevationButtonMask = 0);

매개 변수Parameters

nButtonMasknButtonMask
진행 에 추가할 단추의 마스크입니다 CTaskDialog .[in] A mask of the buttons to add to the CTaskDialog.

nDisabledButtonMasknDisabledButtonMask
진행 사용 하지 않을 단추의 마스크입니다.[in] A mask of the buttons to disable.

nElevationButtonMasknElevationButtonMask
진행 권한 상승이 필요한 단추의 마스크입니다.[in] A mask of the buttons that require elevation.

설명Remarks

클래스의이 인스턴스에 대 한 표시 창이 생성 된 후에는이 메서드를 호출할 수 없습니다 CTaskDialog .You cannot call this method after the display window for this instance of the CTaskDialog class is created. 이렇게 하면이 메서드는 예외를 throw 합니다.If you do, this method throws an exception.

Nbuttonmask 로 표시 되는 단추는 이전에에 추가 된 모든 공통 단추를 재정의 합니다 CTaskDialog .The buttons indicated by nButtonMask override any common buttons previously added to the CTaskDialog. Nbuttonmask 에 표시 된 단추만 사용할 수 있습니다.Only the buttons indicated in nButtonMask are available.

NDisabledButtonMask 또는 NElevationButtonMasknbuttonmask에 없는 단추가 포함 된 경우이 메서드는 확인 매크로를 사용 하 여 예외를 throw 합니다.If either nDisabledButtonMask or nElevationButtonMask contain a button that is not in nButtonMask, this method throws an exception by using the ENSURE macro.

기본적으로 모든 일반 단추가 활성화 되며 권한 상승이 필요 하지 않습니다.By default, all common buttons are enabled and do not require elevation.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog:: SetContentCTaskDialog::SetContent

의 콘텐츠를 업데이트 합니다 CTaskDialog .Updates the content of the CTaskDialog.

void SetContent(const CString& strContent);

매개 변수Parameters

strContentstrContent
진행 사용자에 게 표시할 문자열입니다.[in] The string to display to the user.

설명Remarks

클래스의 내용은 CTaskDialog 대화 상자의 주 섹션에서 사용자에 게 표시 되는 텍스트입니다.The content of the CTaskDialog class is the text that is displayed to the user in the main section of the dialog box.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetDefaultCommandControlCTaskDialog::SetDefaultCommandControl

기본 명령 단추 컨트롤을 지정 합니다.Specifies the default command button control.

void SetDefaultCommandControl(int nCommandControlID);

매개 변수Parameters

nCommandControlIDnCommandControlID
진행 기본값으로 사용할 명령 단추 컨트롤의 ID입니다.[in] The ID of the command button control to be the default.

설명Remarks

기본 명령 단추 컨트롤은가 CTaskDialog 사용자에 게 처음 표시 될 때 선택 되는 컨트롤입니다.The default command button control is the control that is selected when the CTaskDialog is first displayed to the user.

이 메서드는 Ncommandcontrolid로 지정 된 명령 단추 컨트롤을 찾을 수 없는 경우 예외를 throw 합니다.This method throws an exception if it cannot find the command button control specified by nCommandControlID.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog:: SetDefaultRadioButtonCTaskDialog::SetDefaultRadioButton

기본 라디오 단추를 지정 합니다.Specifies the default radio button.

void SetDefaultRadioButton(int nRadioButtonID);

매개 변수Parameters

nRadioButtonIDnRadioButtonID
진행 기본값으로 사용할 라디오 단추의 ID입니다.[in] The ID of the radio button to be the default.

설명Remarks

기본 라디오 단추는가 CTaskDialog 사용자에 게 처음 표시 될 때 선택 되는 단추입니다.The default radio button is the button that is selected when the CTaskDialog is first displayed to the user.

NRadioButtonID로 지정 된 라디오 단추를 찾을 수 없는 경우이 메서드는 예외를 throw 합니다.This method throws an exception if it cannot find the radio button specified by nRadioButtonID.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog:: SetDialogWidthCTaskDialog::SetDialogWidth

의 너비를 조정 합니다 CTaskDialog .Adjusts the width of the CTaskDialog.

void SetDialogWidth(int nWidth = 0);

매개 변수Parameters

nWidthnWidth
진행 대화 상자의 너비 (픽셀)입니다.[in] The width of the dialog box, in pixels.

설명Remarks

매개 변수 Nwidth 는 0 보다 크거나 같아야 합니다.The parameter nWidth must be greater than or equal to 0. 그렇지 않으면이 메서드는 예외를 throw 합니다.Otherwise, this method throws an exception.

Nwidth 가 0으로 설정 된 경우이 메서드는 대화 상자를 기본 크기로 설정 합니다.If nWidth is set to 0, this method sets the dialog box to the default size.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetExpansionAreaCTaskDialog::SetExpansionArea

의 확장 영역을 업데이트 합니다 CTaskDialog .Updates the expansion area of the CTaskDialog.

void SetExpansionArea(
    const CString& strExpandedInformation,
    const CString& strCollapsedLabel = _T(""),
    const CString& strExpandedLabel = _T(""));

매개 변수Parameters

strExpandedInformation 정보strExpandedInformation
진행 CTaskDialog 사용자가 확장 단추를 클릭할 때가 대화 상자의 본문에 표시 하는 문자열입니다.[in] The string that the CTaskDialog displays in the main body of the dialog box when the user clicks the expansion button.

strCollapsedLabelstrCollapsedLabel
진행 CTaskDialog 확장 된 영역이 축소 될 때 확장 단추 옆에가 표시 하는 문자열입니다.[in] The string that the CTaskDialog displays next to the expansion button when the expanded area is collapsed.

strExpandedLabel 레이블strExpandedLabel
진행 CTaskDialog 확장 된 영역이 표시 될 때가 확장 단추 옆에 표시 하는 문자열입니다.[in] The string that the CTaskDialog displays next to the expansion button when the expanded area is displayed.

설명Remarks

클래스의 확장 영역을 CTaskDialog 사용 하면 사용자에 게 추가 정보를 제공할 수 있습니다.The expansion area of the CTaskDialog class enables you to provide additional information to the user. 확장 영역은의 주 부분에 있으며 CTaskDialog 제목 및 콘텐츠 문자열 바로 아래에 있습니다.The expansion area is in the main part of the CTaskDialog, located immediately underneath the title and content string.

CTaskDialog가 처음 표시 될 때 확장 된 정보를 표시 하지 않고 strCollapsedLabel 확장 단추 옆에 배치 합니다.When the CTaskDialog is first displayed, it does not show the expanded information and puts strCollapsedLabel next to the expansion button. 사용자가 확장 단추를 클릭 하면에서 CTaskDialog strex놓을 수 있는 정보를 표시 하 고 레이블을 strexancached 레이블로변경 합니다.When the user clicks the expansion button, the CTaskDialog displays strExpandedInformation and changes the label to strExpandedLabel.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetFooterIconCTaskDialog::SetFooterIcon

의 바닥글 아이콘을 업데이트 합니다 CTaskDialog .Updates the footer icon of the CTaskDialog.

void SetFooterIcon(HICON hFooterIcon);
void SetFooterIcon(LPCWSTR lpszFooterIcon);

매개 변수Parameters

hFooterIconhFooterIcon
진행 의 새 아이콘 CTaskDialog 입니다.[in] The new icon for the CTaskDialog.

lpszFooterIconlpszFooterIcon
진행 의 새 아이콘 CTaskDialog 입니다.[in] The new icon for the CTaskDialog.

설명Remarks

Ctaskdialog 클래스의 아래쪽에 바닥글 아이콘이 표시 됩니다.The footer icon is displayed on the bottom of the CTaskDialog Class. 연결 된 바닥글 텍스트가 있을 수 있습니다.It can have associated footer text. Ctaskdialog:: SetFooterText를 사용 하 여 바닥글 텍스트를 변경할 수 있습니다.You can change the footer text with CTaskDialog::SetFooterText.

이 메서드는 ENSURE CTaskDialog 가 표시 되거나 입력 매개 변수가 NULL 일 경우 확인 매크로를 사용 하 여 예외를 throw 합니다.This method throws an exception with the ENSURE macro if the CTaskDialog is displayed or the input parameter is NULL.

CTaskDialog HICON 또는 바닥글 아이콘 으로만 사용할 수 있습니다 LPCWSTR .A CTaskDialog can only accept an HICON or LPCWSTR as a footer icon. 생성자 또는 Ctaskdialog:: SetOptions에서 옵션 TDF_USE_HICON_FOOTER 설정 하 여 구성 합니다.This is configured by setting the option TDF_USE_HICON_FOOTER in the constructor or CTaskDialog::SetOptions. 기본적으로는 CTaskDialog LPCWSTR 바닥글 아이콘의 입력 형식으로 사용 하도록 구성 됩니다.By default, the CTaskDialog is configured to use LPCWSTR as the input type for the footer icon. 이 메서드는 부적절 한 유형을 사용 하 여 아이콘을 설정 하려고 하면 예외를 발생 시킵니다.This method generates an exception if you try to set the icon using the inappropriate type.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetFooterTextCTaskDialog::SetFooterText

의 바닥글에 있는 텍스트를 업데이트 CTaskDialog 합니다.Updates the text on the footer of the CTaskDialog.

void SetFooterText(const CString& strFooterText);

매개 변수Parameters

strFooterTextstrFooterText
진행 바닥글의 새 텍스트입니다.[in] The new text for the footer.

설명Remarks

바닥글 아이콘이 아래쪽에 있는 바닥글 텍스트 옆에 표시 됩니다 CTaskDialog .The footer icon appears next to the footer text on the bottom of the CTaskDialog. Ctaskdialog:: SetFooterIcon를 사용 하 여 바닥글 아이콘을 변경할 수 있습니다.You can change the footer icon with CTaskDialog::SetFooterIcon.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetMainIconCTaskDialog::SetMainIcon

의 주 아이콘을 업데이트 합니다 CTaskDialog .Updates the main icon of the CTaskDialog.

void SetMainIcon(HICON hMainIcon);
void SetMainIcon(LPCWSTR lpszMainIcon);

매개 변수Parameters

hMainIconhMainIcon
진행 새 아이콘입니다.[in] The new icon.

lpszMainIconlpszMainIcon
진행 새 아이콘입니다.[in] The new icon.

설명Remarks

이 메서드는 ENSURE CTaskDialog 가 표시 되거나 입력 매개 변수가 NULL 일 경우 확인 매크로를 사용 하 여 예외를 throw 합니다.This method throws an exception with the ENSURE macro if the CTaskDialog is displayed or the input parameter is NULL.

CTaskDialog 또는를 주 아이콘 으로만 수락할 수 있습니다 HICON LPCWSTR .A CTaskDialog can only accept an HICON or LPCWSTR as a main icon. 생성자 또는 Ctaskdialog:: SetOptions 메서드에서 TDF_USE_HICON_MAIN 옵션을 설정 하 여이를 구성할 수 있습니다.You can configure this by setting the TDF_USE_HICON_MAIN option in the constructor or in the CTaskDialog::SetOptions method. 기본적으로는 CTaskDialog LPCWSTR 주 아이콘의 입력 형식으로 사용 하도록 구성 됩니다.By default, the CTaskDialog is configured to use LPCWSTR as the input type for the main icon. 이 메서드는 부적절 한 유형을 사용 하 여 아이콘을 설정 하려고 하면 예외를 발생 시킵니다.This method generates an exception if you try to set the icon using the inappropriate type.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetMainInstructionCTaskDialog::SetMainInstruction

의 주 명령을 업데이트 합니다 CTaskDialog .Updates the main instruction of the CTaskDialog.

void SetMainInstruction(const CString& strInstructions);

매개 변수Parameters

strInstructionsstrInstructions
진행 새 주 명령입니다.[in] The new main instruction.

설명Remarks

클래스의 기본 명령은 CTaskDialog 사용자에 게 굵은 굵은 글꼴로 표시 되는 텍스트입니다.The main instruction of the CTaskDialog class is text displayed to the user in a large bold font. 이 대화 상자는 제목 표시줄 아래의 대화 상자에 있습니다.It is located in the dialog box underneath the title bar.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetOptionsCTaskDialog::SetOptions

에 대 한 옵션을 구성 CTaskDialog 합니다.Configures the options for the CTaskDialog.

void SetOptions(int nOptionFlag);

매개 변수Parameters

nOptionFlagnOptionFlag
진행 에 사용할 플래그 집합입니다 CTaskDialog .[in] The set of flags to use for the CTaskDialog.

설명Remarks

이 메서드는에 대 한 현재 옵션을 모두 지웁니다 CTaskDialog .This method clears all the current options for the CTaskDialog. 현재 옵션을 유지 하려면 먼저 Ctaskdialog:: GetOptions 를 사용 하 여 해당 옵션을 검색 하 고 설정 하려는 옵션과 결합 해야 합니다.To preserve the current options, you must retrieve them first with CTaskDialog::GetOptions and combine them with the options that you want to set.

다음 표에서는 모든 유효한 옵션을 보여 줍니다.The following table lists all the valid options.

NameName 설명Description
TDF_ENABLE_HYPERLINKSTDF_ENABLE_HYPERLINKS 에서 하이퍼링크를 사용 하도록 설정 CTaskDialog 합니다.Enables hyperlinks in the CTaskDialog.
TDF_USE_HICON_MAINTDF_USE_HICON_MAIN CTaskDialog주 아이콘에를 사용 하도록를 구성 합니다 HICON .Configures the CTaskDialog to use a HICON for the main icon. 대안은를 사용 하는 것입니다 LPCWSTR .The alternative is to use a LPCWSTR.
TDF_USE_HICON_FOOTERTDF_USE_HICON_FOOTER CTaskDialog바닥글 아이콘에를 사용 하도록를 구성 합니다 HICON .Configures the CTaskDialog to use a HICON for the footer icon. 대안은를 사용 하는 것입니다 LPCWSTR .The alternative is to use a LPCWSTR.
TDF_ALLOW_DIALOG_CANCELLATIONTDF_ALLOW_DIALOG_CANCELLATION CTaskDialog 취소 단추를 사용할 수 없는 경우에도 사용자가 키보드를 사용 하거나 대화 상자의 오른쪽 위 모퉁이에 있는 아이콘을 사용 하 여를 닫을 수 있습니다.Enables the user to close the CTaskDialog by using the keyboard or by using the icon in the upper-right corner of the dialog box, even if the Cancel button is not enabled. 이 플래그를 설정 하지 않고 취소 단추를 사용할 수 없는 경우 사용자는 Alt + F4, esc 키 또는 제목 표시줄의 닫기 단추를 사용 하 여 대화 상자를 닫을 수 없습니다.If this flag is not set and the Cancel button is not enabled, the user cannot close the dialog box by using Alt+F4, the Escape key, or the title bar's close button.
TDF_USE_COMMAND_LINKSTDF_USE_COMMAND_LINKS CTaskDialog명령 단추 컨트롤을 사용 하도록를 구성 합니다.Configures the CTaskDialog to use command button controls.
TDF_USE_COMMAND_LINKS_NO_ICONTDF_USE_COMMAND_LINKS_NO_ICON CTaskDialog컨트롤 옆에 아이콘을 표시 하지 않고 명령 단추 컨트롤을 사용 하도록를 구성 합니다.Configures the CTaskDialog to use command button controls without displaying an icon next to the control. TDF_USE_COMMAND_LINKS TDF_USE_COMMAND_LINKS_NO_ICON를 재정의 합니다.TDF_USE_COMMAND_LINKS overrides TDF_USE_COMMAND_LINKS_NO_ICON.
TDF_EXPAND_FOOTER_AREATDF_EXPAND_FOOTER_AREA 확장 영역이 현재 확장 되었음을 나타냅니다.Indicates the expansion area is currently expanded.
TDF_EXPANDED_BY_DEFAULTTDF_EXPANDED_BY_DEFAULT 확장 영역이 기본적으로 확장 되는지 여부를 결정 합니다.Determines whether the expansion area is expanded by default.
TDF_VERIFICATION_FLAG_CHECKEDTDF_VERIFICATION_FLAG_CHECKED 확인 확인란이 현재 선택 되어 있음을 나타냅니다.Indicates the verification check box is currently selected.
TDF_SHOW_PROGRESS_BARTDF_SHOW_PROGRESS_BAR CTaskDialog진행률 표시줄을 표시 하도록를 구성 합니다.Configures the CTaskDialog to display a progress bar.
TDF_SHOW_MARQUEE_PROGRESS_BARTDF_SHOW_MARQUEE_PROGRESS_BAR 진행률 표시줄을 움직이는 진행률 막대로 구성 합니다.Configures the progress bar to be a marquee progress bar. 이 옵션을 사용 하도록 설정 하는 경우 예상 되는 동작을 포함 하도록 TDF_SHOW_PROGRESS_BAR 설정 해야 합니다.If you enable this option, you must set TDF_SHOW_PROGRESS_BAR to have the expected behavior.
TDF_CALLBACK_TIMERTDF_CALLBACK_TIMER CTaskDialog콜백 간격이 약 200 밀리초로 설정 되어 있음을 나타냅니다.Indicates that the CTaskDialog callback interval is set to approximately 200 milliseconds.
TDF_POSITION_RELATIVE_TO_WINDOWTDF_POSITION_RELATIVE_TO_WINDOW CTaskDialog부모 창에 상대적으로 가운데 맞춤 되도록를 구성 합니다.Configures the CTaskDialog to be centered relative to the parent window. 이 플래그를 사용 하지 않는 경우는 CTaskDialog 모니터를 기준으로 가운데에 배치 됩니다.If this flag is not enabled, the CTaskDialog is centered relative to the monitor.
TDF_RTL_LAYOUTTDF_RTL_LAYOUT CTaskDialog오른쪽에서 왼쪽 읽기 레이아웃에 대 한를 구성 합니다.Configures the CTaskDialog for a right-to-left reading layout.
TDF_NO_DEFAULT_RADIO_BUTTONTDF_NO_DEFAULT_RADIO_BUTTON 이 표시 될 때 라디오 단추가 선택 되지 않았음을 나타냅니다 CTaskDialog .Indicates that no radio button is selected when the CTaskDialog appears.
TDF_CAN_BE_MINIMIZEDTDF_CAN_BE_MINIMIZED 사용자가를 최소화할 수 있습니다 CTaskDialog .Enables the user to minimize the CTaskDialog. 이 옵션을 지원 하기 위해는 CTaskDialog 모달이 될 수 없습니다.To support this option, the CTaskDialog cannot be modal. Mfc는 모덜리스를 지원 하지 않으므로 MFC는이 옵션을 지원 하지 않습니다 CTaskDialog .MFC does not support this option because MFC does not support a modeless CTaskDialog.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: SetProgressBarMarqueeCTaskDialog::SetProgressBarMarquee

의 움직이는 텍스트 막대를 구성 하 CTaskDialog 고 대화 상자에 추가 합니다.Configures a marquee bar for the CTaskDialog and adds it to the dialog box.

void SetProgressBarMarquee(
    BOOL bEnabled = TRUE,
    int nMarqueeSpeed = 0);

매개 변수Parameters

bEnabledbEnabled
진행 움직이는 막대를 사용 하려면 TRUE이 고, 그렇지 않으면입니다. 선택 윤곽 표시줄을 사용 하지 않도록 설정 하 고에서 제거 하려면 FALSE로 설정 CTaskDialog 합니다.[in] TRUE to enable the marquee bar; FALSE to disable the marquee bar and remove it from the CTaskDialog.

nMarqueeSpeednMarqueeSpeed
진행 움직이는 막대의 속도를 나타내는 정수입니다.[in] An integer that indicates the speed of the marquee bar.

설명Remarks

Marquee 막대가 클래스의 기본 텍스트 아래에 나타납니다 CTaskDialog .The marquee bar appears underneath the main text of the CTaskDialog class.

NMarqueeSpeed 를 사용 하 여 움직이는 막대의 속도를 설정 합니다. 값이 클수록 속도가 느립니다.Use nMarqueeSpeed to set the speed of the marquee bar; larger values indicate a slower speed. NMarqueeSpeed 의 값이 0 이면 움직이는 텍스트 막대가 Windows의 기본 속도로 이동 합니다.A value of 0 for nMarqueeSpeed makes the marquee bar move at the default speed for Windows.

이 메서드는 nMarqueeSpeed 가 0 보다 작은 경우 매크로를 사용 하 여 예외를 throw 합니다.This method throws an exception with the ENSURE macro if nMarqueeSpeed is less than 0.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog:: SetProgressBarPositionCTaskDialog::SetProgressBarPosition

진행률 표시줄의 위치를 조정 합니다.Adjusts the position of the progress bar.

void SetProgressBarPosition(int nProgressPos);

매개 변수Parameters

nProgressPosnProgressPos
진행 진행률 표시줄의 위치입니다.[in] The position for the progress bar.

설명Remarks

이 메서드는 nProgressPos 가 진행률 표시줄 범위에 없는 경우 확인 매크로와 함께 예외를 throw 합니다.This method throws an exception with the ENSURE macro if nProgressPos is not in the progress bar range. Ctaskdialog:: SetProgressBarRange를 사용 하 여 진행률 표시줄 범위를 변경할 수 있습니다.You can change the progress bar range with CTaskDialog::SetProgressBarRange.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog:: SetProgressBarRangeCTaskDialog::SetProgressBarRange

진행률 표시줄의 범위를 조정 합니다.Adjusts the range of the progress bar.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

매개 변수Parameters

nRangeMinnRangeMin
진행 진행률 표시줄의 하 한입니다.[in] The lower bound of the progress bar.

nRangeMaxnRangeMax
진행 진행률 표시줄의 상한입니다.[in] The upper bound of the progress bar.

설명Remarks

진행률 표시줄의 위치는 nRangeMinnRangeMax을 기준으로 합니다.The position of the progress bar is relative to nRangeMin and nRangeMax. 예를 들어 nRangeMin 가 50이 고 nRangeMax 가 100 이면 75의 위치는 진행률 표시줄의 중간입니다.For example, if nRangeMin is 50 and nRangeMax is 100, a position of 75 is halfway across the progress bar. Ctaskdialog:: SetProgressBarPosition 를 사용 하 여 진행률 표시줄의 위치를 설정 합니다.Use CTaskDialog::SetProgressBarPosition to set the position of the progress bar.

진행률 표시줄을 표시 하려면 TDF_SHOW_PROGRESS_BAR 옵션을 사용 하도록 설정 하 고 TDF_SHOW_MARQUEE_PROGRESS_BAR 사용 하지 않도록 설정 해야 합니다.To display the progress bar, the option TDF_SHOW_PROGRESS_BAR must be enabled and TDF_SHOW_MARQUEE_PROGRESS_BAR must not be enabled. 이 메서드는 TDF_SHOW_PROGRESS_BAR를 자동으로 설정 하 고 TDF_SHOW_MARQUEE_PROGRESS_BAR를 지웁니다.This method automatically sets TDF_SHOW_PROGRESS_BAR and clears TDF_SHOW_MARQUEE_PROGRESS_BAR. Ctaskdialog:: SetOptions 를 사용 하 여 Ctaskdialog 클래스의이 인스턴스에 대 한 옵션을 수동으로 변경 합니다.Use CTaskDialog::SetOptions to manually change the options for this instance of the CTaskDialog Class.

이 메서드는 nRangeMinnRangeMax보다 작지 않은 경우 확인 매크로와 함께 예외를 throw 합니다.This method throws an exception with the ENSURE macro if nRangeMin is not less than nRangeMax. 이 메서드는 CTaskDialog 가 이미 표시 되어 있고 움직이는 텍스트 진행률 표시줄을 포함 하는 경우에도 예외를 throw 합니다.This method also throws an exception if the CTaskDialog is already displayed and has a marquee progress bar.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog:: SetProgressBarStateCTaskDialog::SetProgressBarState

진행률 표시줄의 상태를 설정 하 고에 표시 합니다 CTaskDialog .Sets the state of the progress bar and displays it on the CTaskDialog.

void SetProgressBarState(int nState = PBST_NORMAL);

매개 변수Parameters

nStatenState
진행 진행률 표시줄의 상태입니다.[in] The state of the progress bar. 가능한 값은 설명 섹션을 참조 하세요.See the Remarks section for the possible values.

설명Remarks

이 메서드는가 이미 표시 되어 있고 움직이는 텍스트 진행률 표시줄이 있는 경우 매크로를 사용 하 여 예외를 throw 합니다 ENSURE CTaskDialog .This method throws an exception with the ENSURE macro if the CTaskDialog is already displayed and has a marquee progress bar.

다음 표에서는 Nstate에 사용할 수 있는 값을 보여 줍니다.The following table lists the possible values for nState. 이러한 모든 경우에는 지정 된 중지 위치에 도달할 때까지 진행률 표시줄이 일반 색으로 채워집니다.In all these cases, the progress bar will fill with the regular color until it reaches the designated stop position. 그러면 상태에 따라 색이 변경 됩니다.At that point it will change color based on the state.

NameName 설명Description
PBST_NORMALPBST_NORMAL 진행률 표시줄이 채워지면에서 CTaskDialog 막대의 색을 변경 하지 않습니다.After the progress bar fills, the CTaskDialog does not change the color of the bar. 기본적으로 일반 색은 녹색입니다.By default, the regular color is green.
PBST_ERRORPBST_ERROR 진행률 표시줄이 채워지면에서 CTaskDialog 막대의 색을 오류 색으로 변경 합니다.After the progress bar fills, the CTaskDialog changes the color of the bar to the error color. 기본적으로이는 빨강입니다.By default, this is red.
PBST_PAUSEDPBST_PAUSED 진행률 표시줄이 채워지면에서 CTaskDialog 막대의 색을 일시 중지 된 색으로 변경 합니다.After the progress bar fills, the CTaskDialog changes the color of the bar to the paused color. 기본적으로 노란색입니다.By default, this is yellow.

Ctaskdialog:: SetProgressBarPosition를 사용 하 여 진행률 표시줄이 중지 되는 위치를 설정할 수 있습니다.You can set where the progress bar stops with CTaskDialog::SetProgressBarPosition.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog:: SetRadioButtonOptionsCTaskDialog::SetRadioButtonOptions

라디오 단추를 사용 하거나 사용 하지 않도록 설정 합니다.Enables or disables a radio button.

void SetRadioButtonOptions(
    int nRadioButtonID,
    BOOL bEnabled);

매개 변수Parameters

nRadioButtonIDnRadioButtonID
진행 라디오 단추 컨트롤의 ID입니다.[in] The ID of the radio button control.

bEnabledbEnabled
진행 라디오 단추를 사용 하려면 TRUE이 고, 그렇지 않으면입니다. 라디오 단추를 사용 하지 않으려면 FALSE로 설정 합니다.[in] TRUE to enable the radio button; FALSE to disable the radio button.

설명Remarks

이 메서드는 nRadioButtonID 가 라디오 단추에 대 한 유효한 ID가 아닌 경우 확인 매크로를 사용 하 여 예외를 throw 합니다.This method throws an exception with the ENSURE macro if nRadioButtonID is not a valid ID for a radio button.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog:: SetVerificationCheckboxCTaskDialog::SetVerificationCheckbox

확인 확인란의 선택 상태를 설정 합니다.Sets the checked state of the verification check box.

void SetVerificationCheckbox(BOOL bChecked);

매개 변수Parameters

bCheckedbChecked
진행 이 표시 될 때 확인 확인란을 선택 하려면 TRUE로 설정 하 CTaskDialog 고, FALSE 이면가 표시 될 때 확인 확인란을 선택 취소 합니다 CTaskDialog .[in] TRUE to have the verification check box selected when the CTaskDialog is displayed; FALSE to have the verification check box unselected when the CTaskDialog is displayed.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog:: SetVerificationCheckboxTextCTaskDialog::SetVerificationCheckboxText

확인 확인란의 오른쪽에 표시 되는 텍스트를 설정 합니다.Sets the text that is displayed to the right of the verification check box.

void SetVerificationCheckboxText(CString& strVerificationText);

매개 변수Parameters

strVerificationTextstrVerificationText
진행 이 메서드가 확인 확인란 옆에 표시 하는 텍스트입니다.[in] The text that this method displays next to the verification check box.

설명Remarks

클래스의이 인스턴스가 이미 표시 되어 있는 경우이 메서드는 확인 매크로를 사용 하 여 예외를 throw CTaskDialog 합니다.This method throws an exception with the ENSURE macro if this instance of the CTaskDialog class is already displayed.

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog:: SetWindowTitleCTaskDialog::SetWindowTitle

의 제목을 설정 합니다 CTaskDialog .Sets the title of the CTaskDialog.

void SetWindowTitle(CString& strWindowTitle);

매개 변수Parameters

strWindowTitlestrWindowTitle
진행 의 새 제목 CTaskDialog 입니다.[in] The new title for the CTaskDialog.

설명Remarks

예제Example

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog:: ShowDialogCTaskDialog::ShowDialog

을 만들어 표시 CTaskDialog 합니다.Creates and displays a CTaskDialog.

static INT_PTR ShowDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons = TDCBF_YES_BUTTON | TDCBF_NO_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

매개 변수Parameters

strContentstrContent
진행 의 내용에 사용할 문자열 CTaskDialog 입니다.[in] The string to use for the content of the CTaskDialog.

strMainInstructionstrMainInstruction
진행 의 기본 명령 CTaskDialog 입니다.[in] The main instruction of the CTaskDialog.

strTitlestrTitle
진행 의 제목 CTaskDialog 입니다.[in] The title of the CTaskDialog.

nIDCommandControlsFirstnIDCommandControlsFirst
진행 첫 번째 명령의 문자열 ID입니다.[in] The string ID of the first command.

nIDCommandControlsLastnIDCommandControlsLast
진행 마지막 명령의 문자열 ID입니다.[in] The string ID of the last command.

nCommonButtonsnCommonButtons
진행 에 추가할 단추의 마스크입니다 CTaskDialog .[in] A mask of the buttons to add to the CTaskDialog.

nTaskDialogOptionsnTaskDialogOptions
진행 에 사용할 옵션 집합입니다 CTaskDialog .[in] The set of options to use for the CTaskDialog.

strFooterstrFooter
진행 바닥글로 사용할 문자열입니다.[in] The string to use as the footer.

반환 값Return Value

사용자가 선택한 항목에 해당 하는 정수입니다.An integer that corresponds to the selection made by the user.

설명Remarks

이 정적 메서드를 사용 하면 CTaskDialog 코드에서 개체를 명시적으로 만들지 않고도 클래스의 인스턴스를 만들 수 있습니다 CTaskDialog .This static method enables you to create an instance of the CTaskDialog class without explicitly creating a CTaskDialog object in your code. 개체가 없기 때문에 CTaskDialog CTaskDialog 이 메서드를 사용 하 여 사용자에 게를 표시 하는 경우의 다른 메서드를 호출할 수 없습니다 CTaskDialog .Because there is no CTaskDialog object, you cannot call any other methods of the CTaskDialog if you use this method to show a CTaskDialog to the user.

이 메서드는 응용 프로그램의 리소스 파일에 있는 데이터를 사용 하 여 명령 단추 컨트롤을 만듭니다.This method creates command button controls by using data from the resource file of your application. 리소스 파일의 문자열 테이블에는 문자열 Id가 연결 된 여러 문자열이 있습니다.The string table in the resource file has several strings with associated string IDs. 이 메서드는 nIDCommandControlsFirstnCommandControlsLast사이에 있는 문자열 테이블의 유효한 각 항목에 대 한 명령 단추 컨트롤을 추가 합니다.This method adds a command button control for each valid entry in the string table between nIDCommandControlsFirst and nCommandControlsLast, inclusive. 이러한 명령 단추 컨트롤의 경우 문자열 테이블의 문자열은 컨트롤의 캡션입니다. 문자열 ID는 컨트롤의 ID입니다.For these command button controls, the string in the string table is the control's caption and the string ID is the control's ID.

유효한 옵션 목록은 Ctaskdialog:: SetOptions 를 참조 하세요.See CTaskDialog::SetOptions for a list of valid options.

CTaskDialog 사용자가 일반 단추 또는 명령 링크 컨트롤을 선택 하거나를 닫을 때 닫힙니다 CTaskDialog .The CTaskDialog closes when the user selects a common button, a command link control, or closes the CTaskDialog. 반환 값은 사용자가 대화 상자를 닫은 방법을 나타내는 식별자입니다.The return value is the identifier that indicates how the user closed the dialog box.

예제Example

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog:: TaskDialogCallbackCTaskDialog::TaskDialogCallback

프레임 워크는 다양 한 Windows 메시지에 대 한 응답으로이 메서드를 호출 합니다.The framework calls this method in response to various Windows messages.

friend:
HRESULT TaskDialogCallback(
    HWND hWnd,
    UINT uNotification,
    WPARAM wParam,
    LPARAM lParam,
    LONG_PTR dwRefData);

매개 변수Parameters

hwndhwnd
진행 의 m_hWnd 구조체에 대 한 핸들 CTaskDialog 입니다.[in] A handle to the m_hWnd structure for the CTaskDialog.

uNotificationuNotification
진행 생성 된 메시지를 지정 하는 알림 코드입니다.[in] The notification code that specifies the generated message.

wParamwParam
진행 메시지에 대 한 자세한 정보입니다.[in] More information about the message.

lParamlParam
진행 메시지에 대 한 자세한 정보입니다.[in] More information about the message.

dwRefDatadwRefData
진행 CTaskDialog 콜백 메시지가 적용 되는 개체에 대 한 포인터입니다.[in] A pointer to the CTaskDialog object that the callback message applies to.

반환 값Return Value

는 특정 알림 코드에 따라 달라 집니다.Depends on the specific notification code. 자세한 내용은 설명 부분을 참조하세요.See the Remarks section for more information.

설명Remarks

의 기본 구현은 TaskDialogCallback 특정 메시지를 처리 한 다음 Ctaskdialog 클래스의 적절 한 메서드를 호출 합니다.The default implementation of TaskDialogCallback handles the specific message and then calls the appropriate On method of the CTaskDialog Class. 예를 들어 TDN_BUTTON_CLICKED 메시지에 대 한 응답으로 TaskDialogCallback Ctaskdialog:: OnCommandControlClick을 호출 합니다.For example, in response to the TDN_BUTTON_CLICKED message, TaskDialogCallback calls CTaskDialog::OnCommandControlClick.

WParamlParam 의 값은 생성 된 특정 메시지에 따라 다릅니다.The values for wParam and lParam depend on the specific generated message. 이러한 값 중 하나 또는 둘 모두를 비워 둘 수 있습니다.It is possible for either or both of these values to be empty. 다음 표에는 지원 되는 기본 알림과 wParamlParam 의 값이 표시 됩니다.The following table lists the default notifications that are supported and what the values of wParam and lParam represent. 파생 클래스에서이 메서드를 재정의 하는 경우 다음 표의 각 메시지에 대 한 콜백 코드를 구현 해야 합니다.If you override this method in a derived class, you should implement the callback code for each message in the following table.

알림 메시지Notification Message wParam 기본값wParam Value lParam 기본값lParam Value
TDN_CREATEDTDN_CREATED 사용되지 않습니다.Not used. 사용되지 않습니다.Not used.
TDN_NAVIGATEDTDN_NAVIGATED 사용되지 않습니다.Not used. 사용되지 않습니다.Not used.
TDN_BUTTON_CLICKEDTDN_BUTTON_CLICKED 명령 단추 컨트롤 ID입니다.The command button control ID. 사용되지 않습니다.Not used.
TDN_HYPERLINK_CLICKEDTDN_HYPERLINK_CLICKED 사용되지 않습니다.Not used. 링크를 포함 하는 Lpcwstr 구조체입니다.A LPCWSTR structure that contains the link.
TDN_TIMERTDN_TIMER 가 만들어지거나 타이머가 다시 설정 된 이후의 시간 (밀리초) CTaskDialog 입니다.Time in milliseconds since the CTaskDialog was created or the timer was reset. 사용되지 않습니다.Not used.
TDN_DESTROYEDTDN_DESTROYED 사용되지 않습니다.Not used. 사용되지 않습니다.Not used.
TDN_RADIO_BUTTON_CLICKEDTDN_RADIO_BUTTON_CLICKED 라디오 단추 ID입니다.The radio button ID. 사용되지 않습니다.Not used.
TDN_DIALOG_CONSTRUCTEDTDN_DIALOG_CONSTRUCTED 사용되지 않습니다.Not used. 사용되지 않습니다.Not used.
TDN_VERIFICATION_CLICKEDTDN_VERIFICATION_CLICKED 확인란이 선택 되어 있으면 1이 고, 그렇지 않으면 0입니다.1 if the check box is checked, 0 if it is not. 사용되지 않습니다.Not used.
TDN_HELPTDN_HELP 사용되지 않습니다.Not used. 사용되지 않습니다.Not used.
TDN_EXPANDO_BUTTON_CLICKEDTDN_EXPANDO_BUTTON_CLICKED 확장 영역이 축소 된 경우 0입니다. 확장 텍스트가 표시 되는 경우 0이 아닙니다.0 if the expansion area is collapsed; nonzero if the expansion text is displayed. 사용되지 않습니다.Not used.

참고 항목See also

클래스Classes
CObject 클래스CObject Class
계층 구조 차트Hierarchy Chart
연습: 응용 프로그램에 CTaskDialog 추가Walkthrough: Adding a CTaskDialog to an Application