다음을 통해 공유


연습: 응용 프로그램에 추가 하는 CTaskDialog

이 연습에서는 소개는 CTaskDialog 클래스 하 고 응용 프로그램에 추가 하는 방법을 보여 줍니다.

CTaskDialog Windows 메시지 상자에 대체 하는 작업 대화 상자는 Windows Vista.CTaskDialog 원래 메시지 상자를 개선 하 고 기능을 추가 합니다.Windows 메시지 상자에서 계속 지원 Visual Studio.

[!참고]

버전의 Windows 보다 이전 Windows Vista 에서 지원 하지 않는 있는 CTaskDialog.사용자에 게 응용 프로그램이 이전 버전의 Windows에서 실행 되는 메시지를 표시 하려는 경우 다른 대화 상자 옵션을 프로그래밍 해야 합니다.정적 메서드를 사용할 수 있습니다 CTaskDialog::IsSupported 런타임에 사용자의 컴퓨터를 표시할 수 있는지 여부를 결정 하는 CTaskDialog.또한 해당 CTaskDialog 유니코드 라이브러리와 응용 프로그램을 빌드할 때만 사용할 수 있습니다.

CTaskDialog 수집 하 고 정보를 표시 하는 여러 가지 선택적 요소를 지원 합니다.예를 들어 있는 CTaskDialog 명령 링크, 사용자 지정 된 단추, 사용자 지정된 아이콘 및 바닥글을 표시할 수 있습니다.CTaskDialog 도 선택한 사용자의 선택적 요소를 확인할 수 있는 작업 대화 상자의 상태를 쿼리할 수 있도록 하는 몇 가지 방법이 있습니다.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

  • Visual Studio 2010

  • Windows Vista

Windows 메시지 상자에는 CTaskDialog 교체

다음은 가장 기본적인 사용법을 설명의 CTaskDialog, Windows 메시지 상자를 대체 하는.작업 대화 상자와 관련 된 아이콘도 변경 하는이 예제입니다.아이콘을 변경 하는 것은 CTaskDialog Windows 메시지 상자에 동일 하 게 나타나는.

Windows 메시지 상자에 Ctaskdialog를 바꾸려면

  1. 기본 설정으로 새 MFC 응용 프로그램 프로젝트를 만듭니다.호출 MyProject.

  2. 사용은 솔루션 탐색기 MyProject.cpp 파일을 엽니다.

  3. 추가 #include "afxtaskdialog.h" 목록을 제공 합니다.

  4. 메서드를 찾을 CMyProjectApp::InitInstance.삽입 하기 전에 코드의 다음 줄은 return TRUE; 문.이 코드를 사용 하거나 Windows 메시지 상자에 문자열 만듭니다는 CTaskDialog.

    CString message("My message to the user");
    CString dialogTitle("My Task Dialog title");
    CString emptyString;
    
  5. 4 단계에서 코드 뒤에 다음 코드를 추가 합니다.이 코드는 사용자의 컴퓨터를 지원 하도록 보장은 CTaskDialog.대화 상자에 지원 되지 않는 경우 응용 프로그램 대신 Windows 메시지 상자를 표시 합니다.

    if (CTaskDialog::IsSupported())
    {
    
    }
    else
    {
       AfxMessageBox(message);
    }
    
  6. 후 괄호 사이 다음 코드를 삽입는 if 5 단계에서 문을.만들고이 코드는 CTaskDialog.

    CTaskDialog taskDialog(message, emptyString, dialogTitle, TDCBF_OK_BUTTON);
    
  7. 다음 줄에 다음 코드를 추가 합니다.이 코드는 경고 아이콘을 설정합니다.

    taskDialog.SetMainIcon(TD_WARNING_ICON);
    
  8. 다음 줄에 다음 코드를 추가 합니다.이 코드는 작업 대화 상자를 표시합니다.

    taskDialog.DoModal();
    

하지 않을 경우 7 단계를 생략할 수는 CTaskDialog Windows 메시지 상자와 같은 아이콘을 표시 합니다.해당 단계를 생략 하는 경우는 CTaskDialog 응용 프로그램이 표시 될 때에 아이콘이 없습니다.

응용 프로그램을 컴파일하여 실행합니다.응용 프로그램 시작 후 작업 대화 상자를 표시 합니다.

Ctaskdialog에 기능을 추가합니다.

다음 절차에서는 기능을 추가 하는 방법을 보여 줍니다 있는 CTaskDialog 앞의 절차에서 만든.예제 코드에서는 사용자의 선택 내용에 따라 특정 명령을 실행 하는 방법을 보여 줍니다.

Ctaskdialog에 기능을 추가 합니다.

  1. 이동은 자원 보기.볼 수 없는 경우는 자원 보기에서 열 수는 보기 메뉴.

  2. 확장은 자원 보기 선택할 수 있을 때까지 있는 문자열 테이블 폴더.확장 하 고 두 번 클릭 하 여 문자열 테이블 항목.

  3. 문자열 테이블의 아래쪽으로 스크롤하여 새 항목을 추가 합니다.ID를 변경 TEMP_LINE1.캡션 명령 줄 1로 설정 합니다.

  4. 다른 새 항목을 추가 합니다.ID를 변경 TEMP_LINE2.캡션 명령 줄 2로 설정 합니다.

  5. Myproject.cpp를 다시 이동 합니다.

  6. 후 CString emptyString;, 다음 코드를 추가 합니다.

    CString expandedLabel("Hide extra information");
    CString collapsedLabel("Show extra information");
    CString expansionInfo("This is the additional information to the user,\nextended over two lines.");
    
  7. 찾기는 taskDialog.DoModal() 문 및 해당 문을 다음 코드로 바꿉니다.이 코드는 작업 대화 상자를 업데이트 하 고 새 컨트롤을 추가:

    taskDialog.SetMainInstruction(L"Warning");
    taskDialog.SetCommonButtons(TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);
    taskDialog.LoadCommandControls(TEMP_LINE1, TEMP_LINE2);
    taskDialog.SetExpansionArea(expansionInfo, collapsedLabel, expandedLabel);
    taskDialog.SetFooterText(L"This is the a small footnote to the user");
    taskDialog.SetVerificationCheckboxText(L"Remember your selection");
    
  8. 작업 대화 상자를 표시 하 고 사용자의 선택을 검색 하는 코드의 다음 줄을 추가 합니다.

    INT_PTR result = taskDialog.DoModal();
    
  9. 다음 코드를 삽입 하 여 호출 하면 taskDialog.DoModal().이 섹션의 코드는 사용자 입력 처리:

    if (taskDialog.GetVerificationCheckboxState() )
    {
       // PROCESS IF the user selects the verification checkbox 
    }
    
    switch (result)
    {
       case TEMP_LINE1:
          // PROCESS IF the first command line
          break;
       case TEMP_LINE2:
          // PROCESS IF the second command line
          break;
       case IDYES:
          // PROCESS IF the user clicks yes
          break;
       case IDNO:
          // PROCESS IF the user clicks no
          break;
       case IDCANCEL:
          // PROCESS IF the user clicks cancel
          break;
       default:
          // This case should not be hit because closing the dialog box results in IDCANCEL
          break;
    }
    

9 단계에서 코드에서 시작 프로세스 경우에는 지정 된 조건에서 실행 하려는 코드의 주석을 교체 합니다.

응용 프로그램을 컴파일하여 실행합니다.응용 프로그램의 새로운 컨트롤 및 추가 정보를 사용 하 여 작업 대화 상자를 표시 합니다.

Ctaskdialog는 CTaskDialog 개체를 만들지 않고 표시

다음 절차를 표시 하는 방법을 보여 줍니다 있는 CTaskDialog 를 먼저 만들지 않고는 CTaskDialog 개체입니다.이 예제에서는 이전 절차를 계속합니다.

CTaskDialog 개체를 만들지 않고 Ctaskdialog를 표시

  1. 아직 열려 있지 않으면 MyProject.cpp 파일을 엽니다.

  2. 닫는 대괄호가 이동의 if (CTaskDialog::IsSupported()) 문.

  3. 닫는 대괄호 바로 앞에 다음 코드를 삽입는 if 문 (전에 else 블록):

    HRESULT result2 = CTaskDialog::ShowDialog(L"My error message", L"Error", L"New Title", TEMP_LINE1, TEMP_LINE2);
    

응용 프로그램을 컴파일하여 실행합니다.응용 프로그램이 두 가지 작업 대화 상자를 표시합니다.첫 번째 대화 상자에 추가 기능에서 CTaskDialog 프로시저에 있습니다. 두 번째 대화 상자에서 마지막 절차입니다.

이러한 예제에 사용 가능한 모든 옵션을 보여 주는 하지는 CTaskDialog, 하지만 작업을 시작 하는 데 도움이 됩니다.참조 CTaskDialog 클래스 대 한 전체 설명은 클래스입니다.

참고 항목

참조

CTaskDialog 클래스

CTaskDialog::CTaskDialog

개념

대화 상자