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 CTaskDialog prvku příkazového tlačítka . |
CTaskDialog::AddRadioButton | Přidá přepínač na CTaskDialog tlačí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 CTaskDialog parametr . |
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 CTaskDialog po 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 CTaskDialog tlačí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 CTaskDialog souboru . |
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 CTaskDialog rozšíření . |
CTaskDialog::SetFooterIcon | Aktualizuje ikonu zápatí pro ikonu CTaskDialog . |
CTaskDialog::SetFooterText | Aktualizuje text v zápatí CTaskDialog . |
CTaskDialog::SetMainIcon | Aktualizuje hlavní ikonu CTaskDialog souboru . |
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 CTaskDialog tlačítko . |
m_aRadioButtons |
Pole přepínačů ovládacích prvků pro CTaskDialog tlačí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 CTaskDialog obsahu ř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.
Má 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 CTaskDialog
můž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ů.
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 CTaskDialog
tlačí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 CTaskDialog
tlačí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 CTaskDialog
souboru .
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 CTaskDialog
parametr .
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);
CTaskDialog::NavigateTo
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 CTaskDialog
po 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 CTaskDialog
tlačí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 CTaskDialog
metodu, 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 CTaskDialog
do . 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 CTaskDialog
souboru .
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 CTaskDialog
rozšíř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 CTaskDialog
okna . 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 CTaskDialog
souboru .
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í CTaskDialog rež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 CTaskDialog
souboru .
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