Sdílet prostřednictvím


CTaskDialog – třída

Automaticky otevírané dialogové okno, které funguje jako pole se zprávou, ale může uživateli zobrazit další informace. Obsahuje CTaskDialog také funkce pro shromažďování informací od uživatele.

Syntaxe

class CTaskDialog : public CObject

Členové

Konstruktory

Název Popis
CTaskDialog::CTaskDialog CTaskDialog Vytvoří objekt.

Metody

Název Popis
CTaskDialog::AddCommandControl Přidá do ovládacího CTaskDialogprvku příkazového tlačítka .
CTaskDialog::AddRadioButton Přidá přepínač na CTaskDialogtlačítko .
CTaskDialog::ClickCommandControl Klikne na ovládací prvek příkazového tlačítka nebo na běžné tlačítko programově.
CTaskDialog::ClickRadioButton Klikne na přepínač programově.
CTaskDialog::D oModal Zobrazí .CTaskDialog
CTaskDialog::GetCommonButtonCount Načte počet dostupných běžných tlačítek.
CTaskDialog::GetCommonButtonFlag Převede standardní tlačítko Windows na běžný typ tlačítka přidružený ke CTaskDialog třídě.
CTaskDialog::GetCommonButtonId Převede jeden z běžných typů tlačítek přidružených ke CTaskDialog třídě na standardní tlačítko Windows.
CTaskDialog::GetOptions Vrátí příznak možnosti pro tento CTaskDialogparametr .
CTaskDialog::GetSelectedCommandControlID Vrátí vybraný ovládací prvek příkazového tlačítka.
CTaskDialog::GetSelectedRadioButtonID Vrátí vybraný přepínač.
CTaskDialog::GetVerificationCheckboxState Načte stav ověřovacího políčka.
CTaskDialog::IsCommandControlEnabled Určuje, zda je povolený ovládací prvek příkazového tlačítka nebo běžné tlačítko.
CTaskDialog::IsRadioButtonEnabled Určuje, zda je povoleno přepínač.
CTaskDialog::IsSupported Určuje, zda počítač, na kterém je aplikace spuštěna, podporuje CTaskDialog.
CTaskDialog::LoadCommandControls Přidá ovládací prvky příkazového tlačítka pomocí dat z tabulky řetězců.
CTaskDialog::LoadRadioButtons Přidá přepínače pomocí dat z tabulky řetězců.
CTaskDialog::NavigateTo Přenese fokus na jiný CTaskDialog.
CTaskDialog::OnCommandControlClick Architektura volá tuto metodu, když uživatel klikne na ovládací prvek příkazového tlačítka.
CTaskDialog::OnCreate Architektura volá tuto metodu CTaskDialogpo vytvoření .
CTaskDialog::OnDestroy Architektura volá tuto metodu bezprostředně před zničením CTaskDialog.
CTaskDialog::OnExpandButtonClick Architektura volá tuto metodu, když uživatel klikne na tlačítko rozšíření.
CTaskDialog::OnHelp Architektura volá tuto metodu, když uživatel požádá o pomoc.
CTaskDialog::OnHyperlinkClick Architektura volá tuto metodu, když uživatel klikne na hypertextový odkaz.
CTaskDialog::Oninit Architektura volá tuto metodu CTaskDialog při inicializaci.
CTaskDialog::OnNavigatePage Architektura volá tuto metodu, když uživatel přesune fokus s ohledem na ovládací prvky na .CTaskDialog
CTaskDialog::OnRadioButtonClick Architektura volá tuto metodu, když uživatel vybere ovládací prvek přepínač.
CTaskDialog::OnTimer Architektura volá tuto metodu při vypršení platnosti časovače.
CTaskDialog::OnVerificationCheckboxClick Architektura volá tuto metodu, když uživatel klikne na zaškrtávací políčko ověření.
CTaskDialog::RemoveAllCommandControls Odebere všechny ovládací prvky příkazů z objektu CTaskDialog.
CTaskDialog::RemoveAllRadioButtons Odebere všechna přepínače z CTaskDialogtlačítka .
CTaskDialog::SetCommandControlOptions Aktualizuje ovládací prvek příkazového tlačítka na kartě CTaskDialog.
CTaskDialog::SetCommonButtonOptions Aktualizuje podmnožinu běžných tlačítek, která se mají povolit, a vyžaduje zvýšení oprávnění řízení uživatelských účtů.
CTaskDialog::SetCommonButtons Přidá na tlačítko CTaskDialog.
CTaskDialog::SetContent Aktualizuje obsah CTaskDialogsouboru .
CTaskDialog::SetDefaultCommandControl Určuje výchozí ovládací prvek příkazového tlačítka.
CTaskDialog::SetDefaultRadioButton Určuje výchozí přepínač.
CTaskDialog::SetDialogWidth Nastaví šířku CTaskDialog.
CTaskDialog::SetExpansionArea Aktualizuje oblast CTaskDialogrozšíření .
CTaskDialog::SetFooterIcon Aktualizuje ikonu zápatí pro ikonu CTaskDialog.
CTaskDialog::SetFooterText Aktualizuje text v zápatí CTaskDialog.
CTaskDialog::SetMainIcon Aktualizuje hlavní ikonu CTaskDialogsouboru .
CTaskDialog::SetMainInstruction Aktualizuje hlavní instrukce CTaskDialog.
CTaskDialog::SetOptions Konfiguruje možnosti pro .CTaskDialog
CTaskDialog::SetProgressBarMarquee Nakonfiguruje pruh pro ohraničení a CTaskDialog přidá ho do dialogového okna.
CTaskDialog::SetProgressBarPosition Upraví pozici indikátoru průběhu.
CTaskDialog::SetProgressBarRange Upraví rozsah indikátoru průběhu.
CTaskDialog::SetProgressBarState Nastaví stav indikátoru průběhu a zobrazí ho na panelu CTaskDialog.
CTaskDialog::SetRadioButtonOptions Povolí nebo zakáže přepínač.
CTaskDialog::SetVerificationCheckbox Nastaví zaškrtnutý stav ověřovacího políčka.
CTaskDialog::SetVerificationCheckboxText Nastaví text na pravé straně ověřovacího políčka.
CTaskDialog::SetWindowTitle Nastaví název CTaskDialog.
CTaskDialog::ShowDialog Vytvoří a zobrazí .CTaskDialog
CTaskDialog::TaskDialogCallback Architektura to volá v reakci na různé zprávy systému Windows.

Datové členy

Název Popis
m_aButtons Pole ovládacích prvků příkazového tlačítka pro CTaskDialogtlačítko .
m_aRadioButtons Pole přepínačů ovládacích prvků pro CTaskDialogtlačítko .
m_bVerified TRUE označuje, že je zaškrtnuto políčko ověření; FALSE značí, že není.
m_footerIcon Ikona v zápatí CTaskDialog.
m_hWnd Popisovač okna pro CTaskDialog.
m_mainIcon Hlavní ikona CTaskDialog.
m_nButtonDisabled Maska, která označuje, která z běžných tlačítek jsou zakázaná.
m_nButtonElevation Maska, která označuje, která z běžných tlačítek vyžaduje zvýšení oprávnění UAC.
m_nButtonId ID ovládacího prvku vybraného příkazového tlačítka.
m_nCommonButton Maska, která označuje, která běžná tlačítka jsou zobrazena na .CTaskDialog
m_nDefaultCommandControl ID ovládacího prvku příkazového tlačítka, který je vybrán při CTaskDialog zobrazení.
m_nDefaultRadioButton ID ovládacího prvku přepínačů, který je vybrán při CTaskDialog zobrazení.
m_nFlags Maska, která označuje možnosti .CTaskDialog
m_nProgressPos Aktuální pozice indikátoru průběhu. Tato hodnota musí být mezi m_nProgressRangeMin a m_nProgressRangeMax.
m_nProgressRangeMax Maximální hodnota indikátoru průběhu.
m_nProgressRangeMin Minimální hodnota indikátoru průběhu.
m_nProgressState Stav indikátoru průběhu Další informace naleznete v tématu CTaskDialog::SetProgressBarState.
m_nRadioId ID vybraného ovládacího prvku přepínačů.
m_nWidth Šířka CTaskDialog obrazových bodů.
m_strCollapse Řetězec, který CTaskDialog se zobrazí napravo od rozšiřujícího pole, když jsou rozbalené informace skryté.
m_strContent Řetězec CTaskDialogobsahu řetězce .
m_strExpand Řetězec, který CTaskDialog se zobrazí napravo od rozšiřujícího pole při zobrazení rozbalených informací.
m_strFooter Zápatí CTaskDialog.
m_strInformation Rozbalené informace pro položku CTaskDialog.
m_strMainInstruction Hlavní instrukce CTaskDialog.
m_strTitle Název CTaskDialog.
m_strVerification Řetězec, který CTaskDialog se zobrazí napravo od zaškrtávacího políčka ověření.

Poznámky

Třída CTaskDialog nahrazuje standardní okno zpráv systému Windows a má další funkce, jako jsou nové ovládací prvky pro shromažďování informací od uživatele. Tato třída je v knihovně MFC v sadě Visual Studio 2010 a novější. Tato CTaskDialog možnost je k dispozici od systému Windows Vista. Starší verze systému Windows objekt nemůžou CTaskDialog zobrazit. Slouží CTaskDialog::IsSupported k určení, zda aktuální uživatel může zobrazit dialogové okno úkolu. Standardní okno se zprávou systému Windows je stále podporováno.

Tato CTaskDialog možnost je k dispozici pouze v případech, kdy aplikaci sestavíte pomocí knihovny Unicode.

CTaskDialog dva různé konstruktory. Jeden konstruktor umožňuje zadat dvě příkazová tlačítka a maximálně šest běžných ovládacích prvků tlačítek. Po vytvoření příkazu CTaskDialogmůžete přidat další příkazová tlačítka . Druhý konstruktor nepodporuje žádná příkazová tlačítka, ale můžete přidat neomezený počet běžných ovládacích prvků tlačítek. Další informace o konstruktorech naleznete v tématu CTaskDialog::CTaskDialog.

Následující obrázek ukazuje ukázku CTaskDialog , která znázorňuje umístění některých ovládacích prvků.

Příklad CTaskDialogu
Ukázka CTaskDialogu

Požadavky

Minimální požadovaný operační systém: Windows Vista

Záhlaví: afxtaskdialog.h

CTaskDialog::AddCommandControl

Přidá do okna nový ovládací prvek příkazového CTaskDialogtlačítka .

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

Parametry

nCommandControlID
[v] Identifikační číslo ovládacího prvku příkazu.

strCaption
[v] Řetězec, který CTaskDialog se uživateli zobrazí. Tento řetězec použijte k vysvětlení účelu příkazu.

bEnabled
[v] Logický parametr, který označuje, jestli je nové tlačítko povolené nebo zakázané.

bRequiresElevation
[v] Logický parametr, který označuje, jestli příkaz vyžaduje zvýšení oprávnění.

Poznámky

Může CTaskDialog Class zobrazit neomezený počet ovládacích prvků příkazového tlačítka. Pokud se ale zobrazí ovládací prvky příkazového CTaskDialog tlačítka, může se zobrazit maximálně šest tlačítek. Pokud ovládací prvek příkazového CTaskDialog tlačítka nemá, může se zobrazit neomezený počet tlačítek.

Když uživatel vybere ovládací prvek příkazového tlačítka, CTaskDialog zavře se. Pokud aplikace zobrazí dialogové okno pomocí CTaskDialog::D oModal, DoModal vrátí nCommandControlID vybraného ovládacího prvku příkazového tlačítka.

Příklad

// 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::AddRadioButton

Přidá přepínač na CTaskDialogtlačítko .

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

Parametry

nRadioButtonID
[v] Identifikační číslo přepínače.

strCaption
[v] Řetězec, který CTaskDialog se zobrazí vedle přepínače.

bEnabled
[v] Logický parametr, který označuje, jestli je přepínač povolený.

Poznámky

Přepínače pro třídu CTaskDialog umožňují shromažďovat informace od uživatele. Pomocí funkce CTaskDialog::GetSelectedRadioButtonID určete, které přepínač je vybrán.

CTaskDialog Nevyžaduje, aby parametry nRadioButtonID byly jedinečné pro každý přepínač. Pokud však pro každé přepínače nepoužíváte jedinečný identifikátor, může dojít k neočekávanému chování.

Příklad

// 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::ClickCommandControl

Klikne na ovládací prvek příkazového tlačítka nebo na běžné tlačítko programově.

protected:
void ClickCommandControl(int nCommandControlID) const;

Parametry

nCommandControlID
[v] ID příkazu ovládacího prvku, na který chcete kliknout.

Poznámky

Tato metoda vygeneruje zprávu windows TDM_CLICK_BUTTON.

CTaskDialog::ClickRadioButton

Klikne na přepínač programově.

protected:
void ClickRadioButton(int nRadioButtonID) const;

Parametry

nRadioButtonID
[v] ID přepínače, na které chcete kliknout.

Poznámky

Tato metoda vygeneruje zprávu windows TDM_CLICK_RADIO_BUTTON.

CTaskDialog::CTaskDialog

Vytvoří instanci CTaskDialog Třídy.

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(""));

Parametry

strContent
[v] Řetězec, který se má použít pro obsah CTaskDialogsouboru .

strMainInstruction
[v] Hlavní instrukce CTaskDialog.

strTitle
[v] Název CTaskDialog.

nCommonButtons
[v] Maska běžných tlačítek, která se mají přidat do CTaskDialog.

nTaskDialogOptions
[v] Sada možností, které se mají použít pro CTaskDialog.

strFooter
[v] Řetězec, který se má použít jako zápatí.

nIDCommandControlsFirst
[v] ID řetězce prvního příkazu.

nIDCommandControlsLast
[v] ID řetězce posledního příkazu.

Poznámky

Existují dva způsoby, jak do aplikace přidat CTaskDialog . Prvním způsobem je použití jednoho z konstruktorů k vytvoření CTaskDialog a zobrazení pomocí CTaskDialog::D oModal. Druhým způsobem je použít statickou funkci CTaskDialog::ShowDialog, která umožňuje zobrazit CTaskDialog bez explicitního vytvoření objektu CTaskDialog .

Druhý konstruktor vytvoří ovládací prvky příkazového tlačítka pomocí dat ze souboru prostředků vaší aplikace. Tabulka řetězců v souboru prostředků obsahuje několik řetězců s přidruženými ID řetězců. Tato metoda přidá ovládací prvek příkazového tlačítka pro každou platnou položku v řetězcové tabulce mezi nIDCommandControlsFirst a nCommandControlsLast včetně. U těchto ovládacích prvků příkazového tlačítka je řetězec v tabulce řetězců titulek ovládacího prvku a ID řetězce je ID ovládacího prvku.

Seznam platných možností najdete v tématu CTaskDialog::SetOptions .

Příklad

// 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 oModal

CTaskDialog Zobrazuje a dělá ho modální.

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

Parametry

hParent
[v] Nadřazené okno pro objekt CTaskDialog.

Návratová hodnota

Celé číslo, které odpovídá výběru provedenému uživatelem.

Poznámky

Zobrazí tuto instanci CTaskDialogu. Aplikace pak čeká na zavření dialogového okna uživatelem.

Zavře CTaskDialog se, když uživatel vybere společné tlačítko, ovládací prvek příkazového odkazu nebo zavře CTaskDialog. Vrácená hodnota je identifikátor, který označuje, jak uživatel zavřel dialogové okno.

Příklad

// 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::GetCommonButtonCount

Načte počet běžných tlačítek.

int GetCommonButtonCount() const;

Návratová hodnota

Počet dostupných běžných tlačítek.

Poznámky

Běžná tlačítka jsou výchozí tlačítka, která zadáte pro CTaskDialog::CTaskDialog. CTaskDialog Třída zobrazí tlačítka v dolní části dialogového okna.

Výčet tlačítek je uveden v souboru CommCtrl.h.

CTaskDialog::GetCommonButtonFlag

Převede standardní tlačítko Windows na běžný typ tlačítka přidružený ke třídě CTaskDialog.

int GetCommonButtonFlag(int nButtonId) const;

Parametry

nButtonId
[v] Standardní hodnota tlačítka Windows.

Návratová hodnota

Hodnota odpovídajícího CTaskDialog společného tlačítka. Pokud neexistuje odpovídající společné tlačítko, tato metoda vrátí hodnotu 0.

CTaskDialog::GetCommonButtonId

Převede jeden z běžných typů tlačítek přidružených ke třídě CTaskDialog na standardní tlačítko Windows.

int GetCommonButtonId(int nFlag);

Parametry

nFlag
[v] Společný typ tlačítka přidružený ke CTaskDialog třídě.

Návratová hodnota

Hodnota odpovídajícího standardního tlačítka Windows. Pokud neexistuje odpovídající tlačítko Windows, vrátí metoda hodnotu 0.

CTaskDialog::GetOptions

Vrátí příznak možnosti pro tento CTaskDialogparametr .

int GetOptions() const;

Návratová hodnota

Příznaky pro CTaskDialog.

Poznámky

Další informace o možnostech dostupných pro třídu CTaskDialog naleznete v tématu CTaskDialog::SetOptions.

Příklad

// 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::GetSelectedCommandControlID

Vrátí vybraný ovládací prvek příkazového tlačítka.

int GetSelectedCommandControlID() const;

Návratová hodnota

ID aktuálně vybraného ovládacího prvku příkazového tlačítka.

Poznámky

Tuto metodu není nutné použít k načtení ID příkazového tlačítka, které uživatel vybral. Toto ID je vráceno CTaskDialog ::D oModal nebo CTaskDialog::ShowDialog.

Příklad

// 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::GetSelectedRadioButtonID

Vrátí vybraný přepínač.

int GetSelectedRadioButtonID() const;

Návratová hodnota

ID vybraného přepínače.

Poznámky

Tuto metodu můžete použít poté, co uživatel zavře dialogové okno k načtení vybraného přepínače.

Příklad

// 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::GetVerificationCheckboxState

Načte stav ověřovacího políčka.

BOOL GetVerificationCheckboxState() const;

Návratová hodnota

PRAVDA, pokud je políčko zaškrtnuté, NEPRAVDA, pokud není.

Příklad

// 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::IsCommandControlEnabled

Určuje, zda je povolený ovládací prvek příkazového tlačítka nebo tlačítko.

BOOL IsCommandControlEnabled(int nCommandControlID) const;

Parametry

nCommandControlID
[v] ID ovládacího prvku příkazového tlačítka nebo tlačítka, které chcete otestovat.

Návratová hodnota

TRUE, pokud je ovládací prvek povolen, NEPRAVDA, pokud není.

Poznámky

Tuto metodu můžete použít k určení dostupnosti ovládacích prvků příkazového tlačítka i běžných tlačítek CTaskDialog třídy*.

Pokud nCommandControlID není platný identifikátor pro společné CTaskDialog tlačítko nebo ovládací prvek příkazového tlačítka, tato metoda vyvolá výjimku.

Příklad

// 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::IsRadioButtonEnabled

Určuje, zda je povoleno přepínač.

BOOL IsRadioButtonEnabled(int nRadioButtonID) const;

Parametry

nRadioButtonID
[v] ID přepínače, které chcete otestovat.

Návratová hodnota

TRUE, pokud je přepínač povolený, NEPRAVDA, pokud není.

Poznámky

Pokud nRadioButtonID není platný identifikátor pro přepínač, tato metoda vyvolá výjimku.

Příklad

// 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::IsSupported

Určuje, zda počítač, na kterém je aplikace spuštěna, podporuje CTaskDialog.

static BOOL IsSupported();

Návratová hodnota

TRUE, pokud počítač podporuje CTaskDialog; JINAK NEPRAVDA.

Poznámky

Tuto funkci použijte k určení za běhu, pokud počítač, na kterém běží vaše aplikace, podporuje CTaskDialog třídu. Pokud počítač nepodporuje CTaskDialog, měli byste poskytnout jinou metodu komunikace informací s uživatelem. Pokud se aplikace pokusí použít v CTaskDialog počítači, který třídu nepodporuje, dojde k chybovému CTaskDialog ukončení aplikace.

Příklad

// 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::LoadCommandControls

Přidá ovládací prvky příkazového tlačítka pomocí dat z tabulky řetězců.

void LoadCommandControls(
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast);

Parametry

nIDCommandControlsFirst
[v] ID řetězce prvního příkazu.

nIDCommandControlsLast
[v] ID řetězce posledního příkazu.

Poznámky

Tato metoda vytvoří ovládací prvky příkazového tlačítka pomocí dat ze souboru prostředků vaší aplikace. Tabulka řetězců v souboru prostředků obsahuje několik řetězců s přidruženými ID řetězců. Nové ovládací prvky příkazového tlačítka přidané pomocí této metody používají řetězec pro titulek ovládacího prvku a ID řetězce pro ID ovládacího prvku. Rozsah vybraných řetězců poskytuje nIDCommandControlsFirst a nCommandControlsLast včetně. Pokud je v oblasti prázdná položka, metoda nepřidá ovládací prvek příkazového tlačítka pro tuto položku.

Ve výchozím nastavení jsou nové ovládací prvky příkazového tlačítka povolené a nevyžadují zvýšení oprávnění.

Příklad

// 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::LoadRadioButtons

Přidá ovládací prvky přepínačů pomocí dat z tabulky řetězců.

void LoadRadioButtons(
    int nIDRadioButtonsFirst,
    int nIDRadioButtonsLast);

Parametry

nIDRadioButtonsFirst
[v] ID řetězce prvního přepínače.

nIDRadioButtonsLast
[v] ID řetězce posledního přepínače.

Poznámky

Tato metoda vytvoří přepínače pomocí dat ze souboru prostředků vaší aplikace. Tabulka řetězců v souboru prostředků obsahuje několik řetězců s přidruženými ID řetězců. Nová přepínače přidaná pomocí této metody používají řetězec pro titulek přepínače a ID řetězce pro ID přepínače. Rozsah vybraných řetězců poskytuje nIDRadioButtonsFirst a nRadioButtonsLast včetně. Pokud je v oblasti prázdná položka, metoda nepřidá přepínač pro tuto položku.

Ve výchozím nastavení jsou povolena nová přepínače.

Příklad

// 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);

Přenese fokus na jiný CTaskDialog.

protected:
void NavigateTo(CTaskDialog& oTaskDialog) const;

Parametry

oTaskDialog
[v] Ten CTaskDialog dostane fokus.

Poznámky

Tato metoda skryje aktuální CTaskDialog , když zobrazí oTaskDialog. OTaskDialog se zobrazí ve stejném umístění jako aktuální CTaskDialog.

CTaskDialog::OnCommandControlClick

Architektura volá tuto metodu, když uživatel klikne na ovládací prvek příkazového tlačítka.

virtual HRESULT OnCommandControlClick(int nCommandControlID);

Parametry

nCommandControlID
[v] ID ovládacího prvku příkazového tlačítka, který uživatel vybral.

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnCreate

Architektura volá tuto metodu CTaskDialogpo vytvoření .

virtual HRESULT OnCreate();

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnDestroy

Architektura volá tuto metodu bezprostředně před zničením CTaskDialog.

virtual HRESULT OnDestroy();

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnExpandButtonClick

Architektura volá tuto metodu, když uživatel klikne na tlačítko rozšíření.

virtual HRESULT OnExpandButtonClicked(BOOL bExpanded);

Parametry

bExpanded
[v] Nenulová hodnota označuje, že se zobrazí dodatečné informace; 0 označuje, že další informace jsou skryté.

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnHelp

Architektura volá tuto metodu, když uživatel požádá o pomoc.

virtual HRESULT OnHelp();

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnHyperlinkClick

Architektura volá tuto metodu, když uživatel klikne na hypertextový odkaz.

virtual HRESULT OnHyperlinkClick(const CString& strHref);

Parametry

strHref
[v] Řetězec, který představuje hypertextový odkaz.

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Tato metoda volá ShellExecute předtím, než vrátí S_OK.

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::Oninit

Architektura volá tuto metodu CTaskDialog při inicializaci.

virtual HRESULT OnInit();

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnNavigatePage

Architektura volá tuto metodu v reakci na metodu CTaskDialog::NavigateTo .

virtual HRESULT OnNavigatePage();

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnRadioButtonClick

Architektura volá tuto metodu, když uživatel vybere ovládací prvek přepínač.

virtual HRESULT OnRadioButtonClick(int nRadioButtonID);

Parametry

nRadioButtonID
[v] ID ovládacího prvku přepínače, na který uživatel klikl.

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnTimer

Architektura volá tuto metodu při vypršení platnosti časovače.

virtual HRESULT OnTimer(long lTime);

Parametry

LTime
[v] Čas v milisekundách od CTaskDialog vytvoření nebo resetování časovače

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::OnVerificationCheckboxClick

Architektura volá tuto metodu, když uživatel klikne na zaškrtávací políčko ověření.

virtual HRESULT OnVerificationCheckboxClick(BOOL bChecked);

Parametry

bChecked
[v] PRAVDA označuje, že je zaškrtnuto políčko ověření; NEPRAVDA označuje, že není.

Návratová hodnota

Výchozí implementace vrátí S_OK.

Poznámky

Přepište tuto metodu v odvozené třídě pro implementaci vlastního chování.

CTaskDialog::RemoveAllCommandControls

Odebere všechny ovládací prvky příkazového tlačítka z tlačítka CTaskDialog.

void RemoveAllCommandControls();

Příklad

// 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::RemoveAllRadioButtons

Odebere všechna přepínače z CTaskDialogtlačítka .

void RemoveAllRadioButtons();

Příklad

// 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::SetCommandControlOptions

Aktualizuje ovládací prvek příkazového tlačítka na kartě CTaskDialog.

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

Parametry

nCommandControlID
[v] ID ovládacího prvku příkazu, který chcete aktualizovat.

bEnabled
[v] Logický parametr, který označuje, jestli je zadaný ovládací prvek příkazového tlačítka povolený nebo zakázaný.

bRequiresElevation
[v] Logický parametr, který označuje, jestli zadaný ovládací prvek příkazového tlačítka vyžaduje zvýšení oprávnění.

Poznámky

Pomocí této metody můžete změnit, jestli je ovládací prvek příkazového tlačítka povolený nebo vyžaduje zvýšení oprávnění po jeho přidání do CTaskDialog třídy.

Příklad

// 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::SetCommonButtonOptions

Aktualizuje podmnožinu běžných tlačítek, která se mají povolit, a vyžaduje zvýšení oprávnění řízení uživatelských účtů.

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

Parametry

nDisabledButtonMask
[v] Maska pro běžná tlačítka, která se mají zakázat.

nElevationButtonMask
[v] Maska pro běžná tlačítka, která vyžadují zvýšení oprávnění.

Poznámky

Běžné tlačítka dostupná pro instanci třídy CTaskDialog můžete nastavit pomocí konstruktoru CTaskDialog::CTaskDialog a metody CTaskDialog::SetCommonButtons. CTaskDialog::SetCommonButtonOptions nepodporuje přidávání nových běžných tlačítek.

Pokud tuto metodu použijete k zakázání nebo zvýšení úrovně společného tlačítka, které není k dispozici pro tuto CTaskDialogmetodu, vyvolá tato metoda výjimku pomocí makra ENSURE .

Tato metoda umožňuje jakékoli tlačítko, které je k dispozici CTaskDialog , ale není v nDisabledButtonMask, i když bylo dříve zakázáno. Tato metoda považuje zvýšení oprávnění podobným způsobem: zaznamenává běžná tlačítka, protože nevyžadují zvýšení oprávnění, pokud je k dispozici společné tlačítko, ale není zahrnuto v nElevationButtonMask.

Příklad

// 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::SetCommonButtons

Přidá na tlačítko CTaskDialog.

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

Parametry

nButtonMask
[v] Maska tlačítek, která se mají přidat do objektu CTaskDialog.

nDisabledButtonMask
[v] Maska tlačítek, která se mají zakázat

nElevationButtonMask
[v] Maska tlačítek, která vyžadují zvýšení.

Poznámky

Tuto metodu nelze volat po vytvoření okna zobrazení pro tuto instanci CTaskDialog třídy. Pokud to uděláte, tato metoda vyvolá výjimku.

Tlačítka označená příkazem nButtonMask přepíší všechna běžná tlačítka, která byla dříve přidána CTaskDialogdo . K dispozici jsou pouze tlačítka uvedená v nButtonMask .

Pokud nDisabledButtonMask nebo nElevationButtonMask obsahují tlačítko, které není v nButtonMask, tato metoda vyvolá výjimku pomocí makra ENSURE.

Ve výchozím nastavení jsou všechna běžná tlačítka povolená a nevyžadují zvýšení oprávnění.

Příklad

// 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::SetContent

Aktualizuje obsah CTaskDialogsouboru .

void SetContent(const CString& strContent);

Parametry

strContent
[v] Řetězec, který se má uživateli zobrazit.

Poznámky

Obsah CTaskDialog třídy je text, který se zobrazí uživateli v hlavní části dialogového okna.

Příklad

// 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::SetDefaultCommandControl

Určuje výchozí ovládací prvek příkazového tlačítka.

void SetDefaultCommandControl(int nCommandControlID);

Parametry

nCommandControlID
[v] ID ovládacího prvku příkazového tlačítka, které má být výchozí.

Poznámky

Výchozí ovládací prvek příkazového tlačítka je ovládací prvek, který je vybrán při CTaskDialog prvním zobrazení uživateli.

Tato metoda vyvolá výjimku, pokud nemůže najít ovládací prvek příkazového tlačítka určený nCommandControlID.

Příklad

// 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::SetDefaultRadioButton

Určuje výchozí přepínač.

void SetDefaultRadioButton(int nRadioButtonID);

Parametry

nRadioButtonID
[v] ID přepínače, které má být výchozí.

Poznámky

Výchozí přepínač je tlačítko, které je vybráno při CTaskDialog prvním zobrazení uživateli.

Tato metoda vyvolá výjimku, pokud nemůže najít přepínač určený nRadioButtonID.

Příklad

// 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::SetDialogWidth

Nastaví šířku CTaskDialog.

void SetDialogWidth(int nWidth = 0);

Parametry

nWidth
[v] Šířka dialogového okna v pixelech.

Poznámky

Parametr nWidth musí být větší nebo roven 0. Jinak tato metoda vyvolá výjimku.

Pokud je nWidth nastavena na hodnotu 0, tato metoda nastaví dialogové okno na výchozí velikost.

Příklad

// 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::SetExpansionArea

Aktualizuje oblast CTaskDialogrozšíření .

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

Parametry

strExpandedInformation
[v] Řetězec, který CTaskDialog se zobrazí v hlavním textu dialogového okna, když uživatel klikne na tlačítko rozšíření.

strCollapsedLabel
[v] Řetězec, který CTaskDialog se zobrazí vedle tlačítka rozbalení, když je rozbalená oblast sbalená.

strExpandedLabel
[v] Řetězec, který CTaskDialog se zobrazí vedle tlačítka rozbalení při zobrazení rozbalené oblasti.

Poznámky

Rozšiřovací oblast CTaskDialog třídy umožňuje uživateli poskytnout další informace. Rozšiřovací oblast je v hlavní části CTaskDialog, která se nachází bezprostředně pod názvem a řetězcem obsahu.

CTaskDialog Při prvním zobrazení se nezobrazují rozbalené informace a umístí strCollapsedLabel se vedle tlačítka rozšíření. Když uživatel klikne na tlačítko rozšíření, CTaskDialog zobrazí strExpandedInformation a změní popisek na strExpandedLabel.

Příklad

// 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::SetFooterIcon

Aktualizuje ikonu zápatí CTaskDialog.

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

Parametry

hFooterIcon
[v] Nová ikona pro ikonu CTaskDialog.

lpszFooterIcon
[v] Nová ikona pro ikonu CTaskDialog.

Poznámky

Ikona zápatí se zobrazí v dolní části třídy CTaskDialog. Může mít přidružený text zápatí. Text zápatí můžete změnit pomocí CTaskDialog::SetFooterText.

Tato metoda vyvolá výjimku s makrem ENSURE , pokud CTaskDialog je zobrazena nebo vstupní parametr je NULL.

A CTaskDialog může přijmout pouze ikonu HICON zápatí nebo LPCWSTR jako zápatí. Toto nastavení je nakonfigurováno nastavením možnosti TDF_USE_HICON_FOOTER v konstruktoru nebo CTaskDialog::SetOptions. Ve výchozím nastavení CTaskDialog se jako typ vstupu pro ikonu zápatí nakonfiguruje LPCWSTR . Tato metoda vygeneruje výjimku, pokud se pokusíte nastavit ikonu pomocí nevhodného typu.

Příklad

// 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::SetFooterText

Aktualizuje text v zápatí CTaskDialog.

void SetFooterText(const CString& strFooterText);

Parametry

strFooterText
[v] Nový text zápatí

Poznámky

Ikona zápatí se zobrazí vedle textu zápatí v dolní části CTaskDialogokna . Ikonu zápatí můžete změnit pomocí CTaskDialog::SetFooterIcon.

Příklad

// 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::SetMainIcon

Aktualizuje hlavní ikonu CTaskDialogsouboru .

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

Parametry

hMainIcon
[v] Nová ikona.

lpszMainIcon
[v] Nová ikona.

Poznámky

Tato metoda vyvolá výjimku s makrem ENSURE , pokud CTaskDialog je zobrazena nebo vstupní parametr je NULL.

A CTaskDialog může přijmout pouze hlavní HICON ikonu nebo LPCWSTR jako hlavní ikonu. Tuto možnost můžete nakonfigurovat nastavením možnosti TDF_USE_HICON_MAIN v konstruktoru nebo v metodě CTaskDialog::SetOptions . Ve výchozím nastavení CTaskDialog se jako vstupní typ hlavní ikony konfiguruje LPCWSTR . Tato metoda vygeneruje výjimku, pokud se pokusíte nastavit ikonu pomocí nevhodného typu.

Příklad

// 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::SetMainInstruction

Aktualizuje hlavní instrukce CTaskDialog.

void SetMainInstruction(const CString& strInstructions);

Parametry

strInstructions
[v] Nová hlavní instrukce.

Poznámky

Hlavní instrukce CTaskDialog třídy je text zobrazený uživateli ve velkém tučném písmu. Nachází se v dialogovém okně pod záhlavím.

Příklad

// 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::SetOptions

Konfiguruje možnosti pro .CTaskDialog

void SetOptions(int nOptionFlag);

Parametry

nOptionFlag
[v] Sada příznaků, které se mají použít pro CTaskDialog.

Poznámky

Tato metoda vymaže všechny aktuální možnosti pro CTaskDialog. Pokud chcete zachovat aktuální možnosti, musíte je nejprve načíst pomocí atributu CTaskDialog::GetOptions a zkombinovat je s možnostmi, které chcete nastavit.

V následující tabulce jsou uvedeny všechny platné možnosti.

Název Popis
TDF_ENABLE_HYPERLINKS Povolí hypertextové odkazy v souboru CTaskDialog.
TDF_USE_HICON_MAIN Nakonfiguruje CTaskDialog použití HICON hlavní ikony. Alternativou je použití .LPCWSTR
TDF_USE_HICON_FOOTER Nakonfiguruje CTaskDialog použití HICON ikony zápatí. Alternativou je použití .LPCWSTR
TDF_ALLOW_DIALOG_CANCELLATION Umožňuje uživateli zavřít CTaskDialog klávesnici nebo pomocí ikony v pravém horním rohu dialogového okna, a to i v případě , že tlačítko Zrušit není povolené. Pokud tento příznak není nastavený a tlačítko Zrušit není povolené, uživatel nemůže dialogové okno zavřít pomocí alt+F4, řídicí klávesy nebo tlačítka zavřít záhlaví.
TDF_USE_COMMAND_LINKS Nakonfiguruje CTaskDialog , aby používal ovládací prvky příkazového tlačítka.
TDF_USE_COMMAND_LINKS_NO_ICON Nakonfiguruje CTaskDialog , aby používal ovládací prvky příkazového tlačítka bez zobrazení ikony vedle ovládacího prvku. TDF_USE_COMMAND_LINKS přepsání TDF_USE_COMMAND_LINKS_NO_ICON.
TDF_EXPAND_FOOTER_AREA Označuje, že oblast rozšíření je nyní rozbalována.
TDF_EXPANDED_BY_DEFAULT Určuje, zda je oblast rozšíření ve výchozím nastavení rozbalována.
TDF_VERIFICATION_FLAG_CHECKED Označuje, že je políčko pro ověření aktuálně zaškrtnuté.
TDF_SHOW_PROGRESS_BAR Nakonfiguruje zobrazení indikátoru CTaskDialog průběhu.
TDF_SHOW_MARQUEE_PROGRESS_BAR Nakonfiguruje indikátor průběhu jako pruh průběhu. Pokud tuto možnost povolíte, musíte nastavit TDF_SHOW_PROGRESS_BAR na očekávané chování.
TDF_CALLBACK_TIMER Označuje, že interval zpětného CTaskDialog volání je nastavený na přibližně 200 milisekund.
TDF_POSITION_RELATIVE_TO_WINDOW Nakonfiguruje CTaskDialog , aby byla zacentrována vzhledem k nadřazeným oknem. Pokud tento příznak není povolený, CTaskDialog je na střed vzhledem k monitoru.
TDF_RTL_LAYOUT Nakonfiguruje CTaskDialog rozložení pro čtení zprava doleva.
TDF_NO_DEFAULT_RADIO_BUTTON Označuje, že po CTaskDialog zobrazení není vybráno žádné přepínačové tlačítko.
TDF_CAN_BE_MINIMIZED Umožňuje uživateli minimalizovat CTaskDialog. Chcete-li tuto možnost podporovat, CTaskDialog nemůže být modální. MFC tuto možnost nepodporuje, protože mfc nepodporuje bezmodální CTaskDialogrežim .

Příklad

// 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::SetProgressBarMarquee

Nakonfiguruje pruh pro ohraničení a CTaskDialog přidá ho do dialogového okna.

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

Parametry

bEnabled
[v] TRUE pro povolení pruhu ohraničení; NEPRAVDA pro zakázání pruhu ohraničení a odebrání z rámeček CTaskDialog.

nMarqueeSpeed
[v] Celé číslo, které označuje rychlost pruhu ohraničení.

Poznámky

Pruh ohraničení se zobrazí pod hlavním textem CTaskDialog třídy.

Pomocí nMarqueeSpeed nastavte rychlost pruhu ohraničení; větší hodnoty označují pomalejší rychlost. Hodnota 0 pro nMarqueeSpeed způsobí, že se pruh výběru přesune na výchozí rychlost pro Windows.

Tato metoda vyvolá výjimku s makrem ENSURE , pokud nMarqueeSpeed je menší než 0.

Příklad

// 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::SetProgressBarPosition

Upraví pozici indikátoru průběhu.

void SetProgressBarPosition(int nProgressPos);

Parametry

nProgressPos
[v] Pozice indikátoru průběhu.

Poznámky

Tato metoda vyvolá výjimku s makrem ENSURE , pokud nProgressPos není v rozsahu indikátoru průběhu. Rozsah indikátoru průběhu můžete změnit pomocí atributu CTaskDialog::SetProgressBarRange.

Příklad

// 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::SetProgressBarRange

Upraví rozsah indikátoru průběhu.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

Parametry

nRangeMin
[v] Dolní mez indikátoru průběhu.

nRangeMax
[v] Horní mez indikátoru průběhu.

Poznámky

Pozice indikátoru průběhu je relativní vzhledem k nRangeMin a nRangeMax. Pokud je například nRangeMin 50 a nRangeMax je 100, pozice 75 je v polovině indikátoru průběhu. K nastavení pozice indikátoru průběhu použijte CTaskDialog::SetProgressBarPosition .

Pokud chcete zobrazit indikátor průběhu, musí být povolená možnost TDF_SHOW_PROGRESS_BAR a TDF_SHOW_MARQUEE_PROGRESS_BAR nesmí být povolená. Tato metoda automaticky nastaví TDF_SHOW_PROGRESS_BAR a vymaže TDF_SHOW_MARQUEE_PROGRESS_BAR. Pomocí atributu CTaskDialog::SetOptions můžete ručně změnit možnosti pro tuto instanci třídy CTaskDialog.

Tato metoda vyvolá výjimku s makrem ENSURE , pokud nRangeMin není menší než nRangeMax. Tato metoda také vyvolá výjimku, pokud CTaskDialog je již zobrazena a má indikátor průběhu ohraničení.

Příklad

// 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::SetProgressBarState

Nastaví stav indikátoru průběhu a zobrazí ho na panelu CTaskDialog.

void SetProgressBarState(int nState = PBST_NORMAL);

Parametry

nState
[v] Stav indikátoru průběhu Informace o možných hodnotách najdete v části Poznámky.

Poznámky

Tato metoda vyvolá výjimku s makrem ENSURE , pokud CTaskDialog je již zobrazena a má indikátor průběhu výběru.

Následující tabulka uvádí možné hodnoty pro nState. Ve všech těchto případech se indikátor průběhu vyplní normální barvou, dokud nedosáhne určené pozice zarážky. V tomto okamžiku změní barvu na základě stavu.

Název Popis
PBST_NORMAL Po vyplnění CTaskDialog indikátoru průběhu se nezmění barva pruhu. Ve výchozím nastavení je běžná barva zelená.
PBST_ERROR Po vyplnění indikátoru průběhu změní CTaskDialog barvu pruhu na barvu chyby. Ve výchozím nastavení je to červená.
PBST_PAUSED Po vyplnění CTaskDialog indikátoru průběhu změní barvu pruhu na pozastavenou barvu. Ve výchozím nastavení je to žlutá.

Můžete nastavit, kde se indikátor průběhu zastaví pomocí atributu CTaskDialog::SetProgressBarPosition.

Příklad

// 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::SetRadioButtonOptions

Povolí nebo zakáže přepínač.

void SetRadioButtonOptions(
    int nRadioButtonID,
    BOOL bEnabled);

Parametry

nRadioButtonID
[v] ID ovládacího prvku přepínačů.

bEnabled
[v] TRUE pro povolení přepínače; NEPRAVDA, pokud chcete přepínač vypnout.

Poznámky

Tato metoda vyvolá výjimku s makrem ENSURE , pokud nRadioButtonID není platné ID pro přepínač.

Příklad

// 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::SetVerificationCheckbox

Nastaví zaškrtnutý stav ověřovacího políčka.

void SetVerificationCheckbox(BOOL bChecked);

Parametry

bChecked
[v] TRUE, pokud má být při zobrazení zaškrtnuto CTaskDialog políčko ověření; NEPRAVDA, pokud má být při zobrazení zaškrtnuté CTaskDialog políčko ověření.

Příklad

// 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::SetVerificationCheckboxText

Nastaví text, který se zobrazí napravo od zaškrtávacího políčka ověření.

void SetVerificationCheckboxText(CString& strVerificationText);

Parametry

strVerificationText
[v] Text, který tato metoda zobrazí vedle zaškrtávacího políčka ověření.

Poznámky

Tato metoda vyvolá výjimku s makrem ENSURE , pokud je tato instance CTaskDialog třídy již zobrazena.

Příklad

// 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::SetWindowTitle

Nastaví název CTaskDialog.

void SetWindowTitle(CString& strWindowTitle);

Parametry

strWindowTitle
[v] Nový název .CTaskDialog

Poznámky

Příklad

// 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::ShowDialog

Vytvoří a zobrazí .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(""));

Parametry

strContent
[v] Řetězec, který se má použít pro obsah CTaskDialogsouboru .

strMainInstruction
[v] Hlavní instrukce CTaskDialog.

strTitle
[v] Název CTaskDialog.

nIDCommandControlsFirst
[v] ID řetězce prvního příkazu.

nIDCommandControlsLast
[v] ID řetězce posledního příkazu.

nCommonButtons
[v] Maska tlačítek, která se mají přidat do objektu CTaskDialog.

nTaskDialogOptions
[v] Sada možností, které se mají použít pro CTaskDialog.

strFooter
[v] Řetězec, který se má použít jako zápatí.

Návratová hodnota

Celé číslo, které odpovídá výběru provedenému uživatelem.

Poznámky

Tato statická metoda umožňuje vytvořit instanci CTaskDialog třídy bez explicitního vytvoření CTaskDialog objektu v kódu. Vzhledem k tomu, že neexistuje žádný CTaskDialog objekt, nelze volat žádné jiné metody CTaskDialog , pokud použijete tuto metodu CTaskDialog k zobrazení uživatele.

Tato metoda vytvoří ovládací prvky příkazového tlačítka pomocí dat ze souboru prostředků vaší aplikace. Tabulka řetězců v souboru prostředků obsahuje několik řetězců s přidruženými ID řetězců. Tato metoda přidá ovládací prvek příkazového tlačítka pro každou platnou položku v řetězcové tabulce mezi nIDCommandControlsFirst a nCommandControlsLast včetně. U těchto ovládacích prvků příkazového tlačítka je řetězec v tabulce řetězců titulek ovládacího prvku a ID řetězce je ID ovládacího prvku.

Seznam platných možností najdete v tématu CTaskDialog::SetOptions .

Zavře CTaskDialog se, když uživatel vybere společné tlačítko, ovládací prvek příkazového odkazu nebo zavře CTaskDialog. Vrácená hodnota je identifikátor, který označuje, jak uživatel zavřel dialogové okno.

Příklad

// 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::TaskDialogCallback

Architektura volá tuto metodu v reakci na různé zprávy systému Windows.

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

Parametry

hwnd
[v] Popisovač struktury m_hWnd pro CTaskDialog.

uNotification
[v] Kód oznámení, který určuje vygenerovanou zprávu.

wParam
[v] Další informace o zprávě.

lParam
[v] Další informace o zprávě.

dwRefData
[v] Ukazatel na CTaskDialog objekt, na který se vztahuje zpráva zpětného volání.

Návratová hodnota

Závisí na konkrétním kódu oznámení. Další informace naleznete v části Poznámky.

Poznámky

Výchozí implementace TaskDialogCallback zpracovává konkrétní zprávu a potom volá odpovídající On metoda CTaskDialog Třída. Například v reakci na TDN_BUTTON_CLICKED zprávu TaskDialogCallback volá CTaskDialog::OnCommandControlClick.

Hodnoty pro wParam a lParam závisí na konkrétní vygenerované zprávě. Je možné, že obě tyto hodnoty budou prázdné. Následující tabulka uvádí výchozí oznámení, která jsou podporována a jaké hodnoty wParam a lParam představují. Pokud tuto metodu přepíšete v odvozené třídě, měli byste implementovat kód zpětného volání pro každou zprávu v následující tabulce.

Zpráva s oznámením wParam Value Hodnota lParam
TDN_CREATED Nepoužívá se. Nepoužívá se.
TDN_NAVIGATED Nepoužívá se. Nepoužívá se.
TDN_BUTTON_CLICKED ID ovládacího prvku příkazového tlačítka. Nepoužívá se.
TDN_HYPERLINK_CLICKED Nepoužívá se. Struktura LPCWSTR , která obsahuje propojení.
TDN_TIMER Čas v milisekundách od CTaskDialog vytvoření nebo resetování časovače Nepoužívá se.
TDN_DESTROYED Nepoužívá se. Nepoužívá se.
TDN_RADIO_BUTTON_CLICKED ID přepínače. Nepoužívá se.
TDN_DIALOG_CONSTRUCTED Nepoužívá se. Nepoužívá se.
TDN_VERIFICATION_CLICKED 1, pokud je políčko zaškrtnuté, 0, pokud není. Nepoužívá se.
TDN_HELP Nepoužívá se. Nepoužívá se.
TDN_EXPANDO_BUTTON_CLICKED 0, pokud je oblast rozšíření sbalená; nenulové, pokud se zobrazí rozšiřující text. Nepoužívá se.

Viz také

Třídy
CObject – třída
Graf hierarchie
Návod: Přidání objektu CTaskDialog do aplikace