Sdílet prostřednictvím


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

Tento názorný postup představuje třídu CTaskDialog a ukazuje, jak ji přidat do aplikace.

Jedná se CTaskDialog o dialogové okno úkolu, které nahrazuje okno zprávy systému Windows v systému Windows Vista nebo novější. Vylepšuje CTaskDialog původní okno se zprávou a přidává funkce. Okno se zprávou systému Windows je stále podporováno v sadě Visual Studio.

Poznámka

Verze systému Windows starší než Windows Vista nepodporují CTaskDialog. Pokud chcete zobrazit zprávu uživateli, který spouští vaši aplikaci ve starší verzi Windows, musíte naprogramovat alternativní dialogové okno. Statickou metodu CTaskDialog::IsSupported můžete použít k určení, zda počítač uživatele může zobrazit CTaskDialog. Kromě toho je k dispozici pouze v případě, CTaskDialog že je vaše aplikace sestavena s knihovnou Unicode.

Podporuje CTaskDialog několik volitelných prvků pro shromáždění a zobrazení informací. Můžete například CTaskDialog zobrazit odkazy příkazů, přizpůsobená tlačítka, přizpůsobené ikony a zápatí. Obsahuje CTaskDialog také několik metod, které umožňují dotazovat stav dialogového okna úkolu, abyste zjistili, jaké volitelné prvky uživatel vybral.

Požadavky

K dokončení tohoto návodu budete potřebovat následující komponenty:

  • Visual Studio 2010 nebo novější

  • Windows Vista nebo novější

Nahrazení pole zpráv systému Windows atributem CTaskDialog

Následující postup ukazuje nejzásadnější použití CTaskDialog, což je nahradit okno zprávy systému Windows. Tento příklad také změní ikonu přidruženou k dialogovému oknu úkolu. Změna ikony se CTaskDialog zobrazí stejně jako okno se zprávou systému Windows.

Nahrazení pole zpráv systému Windows atributem CTaskDialog

  1. Pomocí Průvodce aplikací MFC vytvořte aplikaci MFC se všemi výchozími nastaveními. Viz Návod: Použití nových ovládacích prvků prostředí MFC pro pokyny k otevření průvodce pro vaši verzi sady Visual Studio.

  2. Pojmenujte ho MyProject.

  3. Pomocí Průzkumník řešení otevřete soubor MyProject.cpp.

  4. Přidejte #include "afxtaskdialog.h" za seznam zahrnutí.

  5. Vyhledejte metodu CMyProjectApp::InitInstance. Před příkaz vložte následující řádky kódu return TRUE; . Tento kód vytvoří řetězce, které používáme v okně zprávy systému Windows nebo v souboru CTaskDialog.

    CString message("My message to the user");
    CString dialogTitle("My Task Dialog title");
    CString emptyString;
    
  6. Za kód z kroku 4 přidejte následující kód. Tento kód zaručuje, že počítač uživatele podporuje CTaskDialog. Pokud dialogové okno není podporované, zobrazí aplikace místo toho okno se zprávou systému Windows.

    if (CTaskDialog::IsSupported())
    {
    
    }
    else
    {
        AfxMessageBox(message);
    }
    
  7. Vložte následující kód mezi hranaté závorky za if příkaz z kroku 5. Tento kód vytvoří CTaskDialog.

    CTaskDialog taskDialog(message, emptyString, dialogTitle, TDCBF_OK_BUTTON);
    
  8. Na další řádek přidejte následující kód. Tento kód nastaví ikonu upozornění.

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

    taskDialog.DoModal();
    

Pokud nechcete CTaskDialog , aby se zobrazila stejná ikona jako okno se zprávou Windows, můžete se vyhnout kroku 7. Pokud se ho vyhnete, CTaskDialog nezobrazí se při zobrazení aplikace ikona.

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

Přidání funkcí do CTaskDialogu

Následující postup ukazuje, jak přidat funkce, CTaskDialog které jste vytvořili v předchozím postupu. Ukázkový kód ukazuje, jak provést konkrétní pokyny na základě výběru uživatele.

Přidání funkcí do CTaskDialogu

  1. Přejděte do zobrazení zdrojů. Pokud zobrazení zdrojů nevidíte, můžete ho otevřít z nabídky Zobrazení.

  2. Rozbalte zobrazení zdrojů, dokud nebudete moct vybrat složku Tabulka řetězců. Rozbalte ji a poklikejte na položku Tabulka řetězců .

  3. Posuňte se do dolní části tabulky řetězců a přidejte novou položku. Změňte ID na TEMP_LINE1. Nastavte popis na příkazový řádek 1.

  4. Přidejte další novou položku. Změňte ID na TEMP_LINE2. Nastavte popis na příkazový řádek 2.

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

  6. Za 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. taskDialog.DoModal() Najděte příkaz a nahraďte ho následujícím kódem. Tento kód aktualizuje dialogové okno úkolu 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 a small footnote to the user");
    taskDialog.SetVerificationCheckboxText(L"Remember your selection");
    
  8. Přidejte následující řádek kódu, který zobrazí dialogové okno úkolu uživateli a načte výběr uživatele:

    INT_PTR result = taskDialog.DoModal();
    
  9. Vložte následující kód za volání taskDialog.DoModal(). Tato část 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í kódem PROCESS IF , který chcete provést za zadaných podmínek.

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

Zobrazení objektu CTaskDialog bez vytvoření objektu CTaskDialog

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

Zobrazení objektu CTaskDialog bez vytvoření objektu CTaskDialog

  1. Otevřete soubor MyProject.cpp, pokud ještě není otevřený.

  2. Přejděte do uzavírací if (CTaskDialog::IsSupported()) závorky pro příkaz.

  3. Vložte následující kód bezprostředně před pravou závorku if příkazu (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. První dialogové okno je z možnosti Přidat funkci do procedury CTaskDialog . Druhé dialogové okno pochází z poslední procedury.

Tyto příklady neukazují všechny dostupné možnosti pro konkrétní aplikaci CTaskDialog, ale měly by vám pomoct začít. Úplný popis třídy najdete v části CTaskDialog – třída .

Viz také

Dialogová okna
CTaskDialog – třída
CTaskDialog::CTaskDialog