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
Vytvoření nového projektu knihovny MFC aplikace s výchozím nastavením.Volání MůjProjekt.
Použití Průzkumník řešení otevřete soubor MyProject.cpp.
Přidat #include "afxtaskdialog.h" po seznam obsahuje.
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;
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); }
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);
Na další řádek přidejte následující kód.Tento kód nastaví výstražná ikona.
taskDialog.SetMainIcon(TD_WARNING_ICON);
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
Přejděte zobrazení zdrojů.Pokud nevidíte Zobrazení zdrojů, jej otevřete zobrazení nabídky.
Rozbalte Zobrazení zdrojů až do můžete vybrat Tabulky řetězců složky.Rozbalte ho a poklepejte Tabulky řetězců vstupu.
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.
Přidáte další nové položky.Změňte ID na TEMP_LINE2.Nastavte titulek příkazového řádku 2.
Přejděte zpět do MyProject.cpp.
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.");
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");
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();
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
Pokud není již otevřen, otevřete soubor MyProject.cpp.
Přejděte na pravou hranatou závorku pro if (CTaskDialog::IsSupported()) prohlášení.
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.