Sdílet prostřednictvím


Návod: Přidání objektu CTaskDialog do aplikace

Tento návod představuje Třída CTaskDialog a ukazuje, jak přidat do aplikace.

CTaskDialog Dialogové okno úkolu, který nahrazuje zprávou systému Windows v Windows Vista.CTaskDialog Zvyšuje původní zprávou a přidá funkci.Okno se zprávou systému Windows, které je nadále podporováno v Visual Studio.

[!POZNÁMKA]

Verze systému Windows starší než Windows Vista není podporována CTaskDialog.Pokud chcete zobrazit zprávu uživateli, který je vaše aplikace spuštěna v dřívější verzi systému Windows je nutné naprogramovat možnost alternativní dialogového okna.Můžete použít statickou metodu CTaskDialog::IsSupported Chcete-li zjistit, zda počítač uživatele může zobrazit v době běhu CTaskDialog.Kromě toho CTaskDialog je k dispozici pouze pokud je vaše aplikace sestavena pomocí knihovny Unicode.

CTaskDialog Podporuje několik volitelné prvky pro shromažďování a zobrazení informací.Například CTaskDialog příkaz propojení, vlastní tlačítka, upravené ikony a zápatí zobrazit.CTaskDialog Má také několik metod, které umožňují zjistit stav úloh dialogové okno Chcete-li určit, které volitelné prvky vybrán uživatel.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující komponenty:

  • Visual Studio 2010

  • Windows Vista

Nahrazení CTaskDialog okno se zprávou systému Windows

Následující postup ukazuje základní použití CTaskDialog, která má nahradit okno se zprávou systému Windows.V tomto příkladu změní také ikony přidružené k seznamu úkolů.Změna ikony bude CTaskDialog se zobrazí stejné okno se zprávou systému Windows.

Chcete-li nahradit okno se zprávou systému Windows CTaskDialog

  1. Vytvoření nového projektu knihovny MFC aplikace s výchozím nastavením.Volání MůjProjekt.

  2. Použití Průzkumník řešení otevřete soubor MyProject.cpp.

  3. Přidat #include "afxtaskdialog.h" po seznam obsahuje.

  4. Najít metoda CMyProjectApp::InitInstance.Vložte následující řádky kódu před return TRUE; prohlášení.Tento kód vytvoří řetězce, které používáme buď okno se zprávou systému Windows nebo v CTaskDialog.

    CString message("My message to the user");
    CString dialogTitle("My Task Dialog title");
    CString emptyString;
    
  5. Přidejte následující kód po kódu v kroku 4.Tento kód zajišťuje, že podporuje počítače uživatele CTaskDialog.Pokud dialogové okno není podporován, zobrazí aplikace okno se zprávou systému Windows.

    if (CTaskDialog::IsSupported())
    {
    
    }
    else
    {
       AfxMessageBox(message);
    }
    
  6. Vložte následující kód mezi závorkami po if příkazu v kroku 5.Tento kód vytvoří CTaskDialog.

    CTaskDialog taskDialog(message, emptyString, dialogTitle, TDCBF_OK_BUTTON);
    
  7. Na další řádek přidejte následující kód.Tento kód nastaví výstražná ikona.

    taskDialog.SetMainIcon(TD_WARNING_ICON);
    
  8. Na další řádek přidejte následující kód.Tento kód se zobrazí dialogové okno úloh.

    taskDialog.DoModal();
    

Pokud nechcete, můžete vynechat krok 7 CTaskDialog zobrazit ikonu stejné jako okno se zprávou systému Windows.Pokud vynecháte tento krok, CTaskDialog nemá žádná ikona aplikace se zobrazí.

Zkompilujte a spusťte aplikaci.Aplikace zobrazí dialogové okno úloh po spuštění.

Přidání funkce CTaskDialog

Následující postup ukazuje, jak přidat funkce CTaskDialog , který jste vytvořili v předchozí proceduře.Příklad kódu ukazuje, jak provést zvláštní pokyny na základě výběru uživatele.

K přidání funkcí CTaskDialog

  1. Přejděte zobrazení zdrojů.Pokud nevidíte Zobrazení zdrojů, jej otevřete zobrazení nabídky.

  2. Rozbalte Zobrazení zdrojů až do můžete vybrat Tabulky řetězců složky.Rozbalte ho a poklepejte Tabulky řetězců vstupu.

  3. Přejděte do dolní části tabulky řetězců a přidat novou položku.Změňte ID na TEMP_LINE1.Nastavte titulek příkazového řádku 1.

  4. Přidáte další nové položky.Změňte ID na TEMP_LINE2.Nastavte titulek příkazového řádku 2.

  5. Přejděte zpět do MyProject.cpp.

  6. Po CString emptyString;, přidejte následující kód:

    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. Najít taskDialog.DoModal() prohlášení a tento příkaz nahraďte následující kód.Tento kód aktualizuje dialogové okno úloh a přidá nové ovládací prvky:

    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. Přidejte následující řádek kódu, který se uživateli zobrazí dialogové okno úloh a načte výběru uživatele:

    INT_PTR result = taskDialog.DoModal();
    
  9. Vložte následující kód po volání taskDialog.DoModal().V této části kódu zpracovává vstup uživatele:

    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;
    }
    

V kódu v kroku 9 Nahraďte komentáře, které začínají v případě procesu s kódem, který má být proveden za stanovených podmínek.

Zkompilujte a spusťte aplikaci.Aplikace zobrazí dialogové okno úkolu, který používá nové ovládací prvky a další informace.

Zobrazení CTaskDialog bez vytvoření objektu CTaskDialog

Následující postup ukazuje, jak zobrazit CTaskDialog bez vytvoření první CTaskDialog objektu.V tomto příkladu pokračuje v předchozích postupech.

Chcete-li zobrazit CTaskDialog bez vytvoření objektu CTaskDialog

  1. Pokud není již otevřen, otevřete soubor MyProject.cpp.

  2. Přejděte na pravou hranatou závorku pro if (CTaskDialog::IsSupported()) prohlášení.

  3. Vložte následující kód bezprostředně před uzavírací závorku if prohlášení (před else blok):

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

Zkompilujte a spusťte aplikaci.Aplikace zobrazí dvě dialogová okna úkolu.Je první dialogové okno Chcete-li přidat funkci CTaskDialog postup; v druhém dialogovém je posledním postupu.

Tyto příklady ukazují ne všechny dostupné možnosti CTaskDialog, ale by vám pomohli.Viz Třída CTaskDialog úplný popis třídy.

Viz také

Referenční dokumentace

Třída CTaskDialog

CTaskDialog::CTaskDialog

Koncepty

Dialogová okna