CTaskDialog-Klasse
Ein Popupdialogfeld, das wie ein Meldungsfeld funktioniert, aber zusätzliche Informationen für den Benutzer anzeigen kann. CTaskDialog
enthält auch Funktionen zum Erfassen von Informationen des Benutzers.
Syntax
class CTaskDialog : public CObject
Member
Konstruktoren
Name | Beschreibung |
---|---|
CTaskDialog::CTaskDialog | Erstellt ein CTaskDialog -Objekt. |
Methoden
Name | Beschreibung |
---|---|
CTaskDialog::AddCommandControl | Fügt der CTaskDialog Befehlsschaltfläche ein Steuerelement hinzu. |
CTaskDialog::AddRadioButton | Fügt der CTaskDialog Schaltfläche ein Optionsfeld hinzu. |
CTaskDialog::ClickCommandControl | Klickt programmgesteuert auf ein Befehlsschaltflächen-Steuerelement oder eine allgemeine Schaltfläche. |
CTaskDialog::ClickRadioButton | Klickt programmgesteuert auf ein Optionsfeld. |
CTaskDialog::D oModal | Zeigt das CTaskDialog an. |
CTaskDialog::GetCommonButtonCount | Ruft die Anzahl der verfügbaren allgemeinen Schaltflächen ab. |
CTaskDialog::GetCommonButtonFlag | Konvertiert eine Windows-Standardschaltfläche in den allgemeinen Schaltflächentyp, der der CTaskDialog Klasse zugeordnet ist. |
CTaskDialog::GetCommonButtonId | Konvertiert einen der allgemeinen Schaltflächentypen, die der CTaskDialog Klasse zugeordnet sind, in eine Windows-Standardschaltfläche. |
CTaskDialog::GetOptions | Gibt die Optionskennzeichnungen für diesen CTaskDialog Wert zurück. |
CTaskDialog::GetSelectedCommandControlID | Gibt das ausgewählte Befehlsschaltflächen-Steuerelement zurück. |
CTaskDialog::GetSelectedRadioButtonID | Gibt das ausgewählte Optionsfeld zurück. |
CTaskDialog::GetVerificationCheckboxState | Ruft den Status des Überprüfungskontrollkästchens ab. |
CTaskDialog::IsCommandControlEnabled | Bestimmt, ob ein Befehlsschaltflächen-Steuerelement oder eine allgemeine Schaltfläche aktiviert ist. |
CTaskDialog::IsRadioButtonEnabled | Bestimmt, ob ein Optionsfeld aktiviert ist. |
CTaskDialog::IsSupported | Bestimmt, ob der Computer, auf dem die Anwendung ausgeführt wird, die CTaskDialog . |
CTaskDialog::LoadCommandControls | Fügt Befehlsschaltflächensteuerelemente mithilfe von Daten aus der Zeichenfolgentabelle hinzu. |
CTaskDialog::LoadRadioButtons | Fügt Optionsfelder mithilfe von Daten aus der Zeichenfolgentabelle hinzu. |
CTaskDialog::NavigateTo | Überträgt den Fokus auf eine andere CTaskDialog . |
CTaskDialog::OnCommandControlClick | Das Framework ruft diese Methode auf, wenn der Benutzer auf ein Befehlsschaltflächen-Steuerelement klickt. |
CTaskDialog::OnCreate | Das Framework ruft diese Methode auf, nachdem sie die CTaskDialog . |
CTaskDialog::OnDestroy | Das Framework ruft diese Methode unmittelbar auf, bevor sie die CTaskDialog . |
CTaskDialog::OnExpandButtonClick | Das Framework ruft diese Methode auf, wenn der Benutzer auf die Erweiterungsschaltfläche klickt. |
CTaskDialog::OnHelp | Das Framework ruft diese Methode auf, wenn der Benutzer Hilfe anfordert. |
CTaskDialog::OnHyperlinkClick | Das Framework ruft diese Methode auf, wenn der Benutzer auf einen Link klickt. |
CTaskDialog::OnInit | Das Framework ruft diese Methode beim Initialisieren auf CTaskDialog . |
CTaskDialog::OnNavigatePage | Das Framework ruft diese Methode auf, wenn der Benutzer den Fokus in Bezug auf Steuerelemente auf dem CTaskDialog . |
CTaskDialog::OnRadioButtonClick | Das Framework ruft diese Methode auf, wenn der Benutzer ein Optionsfeld-Steuerelement auswählt. |
CTaskDialog::OnTimer | Das Framework ruft diese Methode auf, wenn der Timer abläuft. |
CTaskDialog::OnVerificationCheckboxClick | Das Framework ruft diese Methode auf, wenn der Benutzer auf das Überprüfungskontrollkästchen klickt. |
CTaskDialog::RemoveAllCommandControls | Entfernt alle Befehlssteuerelemente aus dem CTaskDialog . |
CTaskDialog::RemoveAllRadioButtons | Entfernt alle Optionsfelder aus dem CTaskDialog . |
CTaskDialog::SetCommandControlOptions | Aktualisiert ein Befehlsschaltflächen-Steuerelement auf der CTaskDialog . |
CTaskDialog::SetCommonButtonOptions | Aktualisiert eine Teilmenge allgemeiner Schaltflächen, die aktiviert werden sollen, und erfordert UAC-Rechteerweiterungen. |
CTaskDialog::SetCommonButtons | Fügt allgemeine Schaltflächen zu der CTaskDialog . |
CTaskDialog::SetContent | Aktualisiert den Inhalt der CTaskDialog . |
CTaskDialog::SetDefaultCommandControl | Gibt das Standardmäßige Befehlsschaltflächen-Steuerelement an. |
CTaskDialog::SetDefaultRadioButton | Gibt das Standard-Optionsfeld an. |
CTaskDialog::SetDialogWidth | Passt die Breite der CTaskDialog . |
CTaskDialog::SetExpansionArea | Aktualisiert den Erweiterungsbereich der CTaskDialog . |
CTaskDialog::SetFooterIcon | Aktualisiert das Fußzeilensymbol für das CTaskDialog . |
CTaskDialog::SetFooterText | Aktualisiert den Text auf der Fußzeile der CTaskDialog . |
CTaskDialog::SetMainIcon | Aktualisiert das Hauptsymbol der CTaskDialog . |
CTaskDialog::SetMainInstruction | Aktualisiert die Hauptanweisung der CTaskDialog . |
CTaskDialog::SetOptions | Konfiguriert die Optionen für die CTaskDialog . |
CTaskDialog::SetProgressBarMarquee | Konfiguriert eine Balkenleiste für das CTaskDialog Dialogfeld und fügt sie dem Dialogfeld hinzu. |
CTaskDialog::SetProgressBarPosition | Passt die Position der Statusanzeige an. |
CTaskDialog::SetProgressBarRange | Passt den Bereich der Statusanzeige an. |
CTaskDialog::SetProgressBarState | Legt den Status der Statusanzeige fest und zeigt ihn auf der CTaskDialog . |
CTaskDialog::SetRadioButtonOptions | Aktiviert oder deaktiviert ein Optionsfeld. |
CTaskDialog::SetVerificationCheckbox | Legt den aktivierten Status des Überprüfungskontrollkästchens fest. |
CTaskDialog::SetVerificationCheckboxText | Legt den Text auf der rechten Seite des Überprüfungskontrollkästchens fest. |
CTaskDialog::SetWindowTitle | Legt den Titel des CTaskDialog . |
CTaskDialog::ShowDialog | Erstellt und zeigt eine CTaskDialog . |
CTaskDialog::TaskDialogCallback | Das Framework ruft dies als Reaktion auf verschiedene Windows-Nachrichten auf. |
Datenelemente
Name | Beschreibung |
---|---|
m_aButtons |
Das Array der Befehlsschaltflächen-Steuerelemente für die CTaskDialog . |
m_aRadioButtons |
Das Array von Optionsfeld-Steuerelementen für die CTaskDialog . |
m_bVerified |
TRUE gibt an, dass das Überprüfungskontrollkästchen aktiviert ist; FALSE gibt an, dass es nicht ist. |
m_footerIcon |
Das Symbol in der Fußzeile der CTaskDialog . |
m_hWnd |
Ein Ziehpunkt für das Fenster für das CTaskDialog . |
m_mainIcon |
Das Hauptsymbol der CTaskDialog . |
m_nButtonDisabled |
Eine Maske, die angibt, welche der allgemeinen Schaltflächen deaktiviert sind. |
m_nButtonElevation |
Eine Maske, die angibt, welche der allgemeinen Schaltflächen UAC-Rechteerweiterung erfordern. |
m_nButtonId |
Die ID des ausgewählten Befehlsschaltflächen-Steuerelements. |
m_nCommonButton |
Eine Maske, die angibt, welche allgemeinen Schaltflächen auf der CTaskDialog Schaltfläche angezeigt werden. |
m_nDefaultCommandControl |
Die ID des Befehlsschaltflächen-Steuerelements, das beim CTaskDialog Anzeigen ausgewählt wird. |
m_nDefaultRadioButton |
Die ID des Optionsfeld-Steuerelements, das beim CTaskDialog Anzeigen ausgewählt wird. |
m_nFlags |
Eine Maske, die die Optionen für die CTaskDialog . |
m_nProgressPos |
Die aktuelle Position für die Statusanzeige. Dabei muss es sich um einen Wert zwischen m_nProgressRangeMin und m_nProgressRangeMax handeln. |
m_nProgressRangeMax |
Der Maximalwert für die Statusanzeige. |
m_nProgressRangeMin |
Der Mindestwert für die Statusanzeige. |
m_nProgressState |
Der Zustand der Statusanzeige. Weitere Informationen finden Sie unter "CTaskDialog::SetProgressBarState". |
m_nRadioId |
Die ID des ausgewählten Optionsfeld-Steuerelements. |
m_nWidth |
Die Breite der CTaskDialog Pixel. |
m_strCollapse |
Die Zeichenfolge, CTaskDialog die rechts neben dem Erweiterungsfeld angezeigt wird, wenn die erweiterten Informationen ausgeblendet sind. |
m_strContent |
Die Inhaltszeichenfolge der CTaskDialog . |
m_strExpand |
Die Zeichenfolge, CTaskDialog die rechts neben dem Erweiterungsfeld angezeigt wird, wenn die erweiterten Informationen angezeigt werden. |
m_strFooter |
Die Fußzeile der CTaskDialog . |
m_strInformation |
Die erweiterten Informationen für die CTaskDialog . |
m_strMainInstruction |
Die Hauptanweisung der CTaskDialog . |
m_strTitle |
Der Titel des CTaskDialog . |
m_strVerification |
Die Zeichenfolge, CTaskDialog die rechts neben dem Überprüfungskontrollkästchen angezeigt wird. |
Hinweise
Die CTaskDialog
Klasse ersetzt das Standardmäßige Windows-Meldungsfeld und verfügt über zusätzliche Funktionen wie neue Steuerelemente, um Informationen vom Benutzer zu sammeln. Diese Klasse befindet sich in der MFC-Bibliothek in Visual Studio 2010 und höher. Das CTaskDialog
ist ab Windows Vista verfügbar. Frühere Versionen von Windows können das CTaskDialog
Objekt nicht anzeigen. Hiermit bestimmen Sie CTaskDialog::IsSupported
zur Laufzeit, ob der aktuelle Benutzer das Aufgabendialogfeld anzeigen kann. Das Standardmäßige Windows-Meldungsfeld wird weiterhin unterstützt.
Dies CTaskDialog
ist nur verfügbar, wenn Sie Ihre Anwendung mithilfe der Unicode-Bibliothek erstellen.
Dies CTaskDialog
hat zwei verschiedene Konstruktoren. Mit einem Konstruktor können Sie zwei Befehlsschaltflächen und maximal sechs reguläre Schaltflächensteuerelemente angeben. Sie können nach dem Erstellen der CTaskDialog
Schaltflächen weitere Befehlsschaltflächen hinzufügen. Der zweite Konstruktor unterstützt keine Befehlsschaltflächen, Sie können jedoch eine unbegrenzte Anzahl regulärer Schaltflächensteuerelemente hinzufügen. Weitere Informationen zu den Konstruktoren finden Sie unter "CTaskDialog::CTaskDialog".
Die folgende Abbildung zeigt ein Beispiel CTaskDialog
, um die Position einiger Steuerelemente zu veranschaulichen.
CTaskDialog-Beispiel
Anforderungen
Mindestens erforderliches Betriebssystem: Windows Vista
Kopfzeile: afxtaskdialog.h
CTaskDialog::AddCommandControl
Fügt der Schaltfläche ein neues Befehlsschaltflächen-Steuerelement hinzu CTaskDialog
.
void AddCommandControl(
int nCommandControlID,
const CString& strCaption,
BOOL bEnabled = TRUE,
BOOL bRequiresElevation = FALSE);
Parameter
nCommandControlID
[in] Die Identifikationsnummer des Befehlssteuerelements.
strCaption
[in] Die Zeichenfolge, die CTaskDialog
dem Benutzer angezeigt wird. Verwenden Sie diese Zeichenfolge, um den Zweck des Befehls zu erläutern.
bEnabled
[in] Ein boolescher Parameter, der angibt, ob die neue Schaltfläche aktiviert oder deaktiviert ist.
bRequiresElevation
[in] Ein boolescher Parameter, der angibt, ob ein Befehl eine Rechteerweiterung erfordert.
Hinweise
Dies CTaskDialog Class
kann eine unbegrenzte Anzahl von Befehlsschaltflächensteuerelementen anzeigen. Wenn ein CTaskDialog
Befehlsschaltflächen-Steuerelement angezeigt wird, kann es jedoch maximal sechs Schaltflächen anzeigen. Wenn keine CTaskDialog
Befehlsschaltflächensteuerelemente vorhanden sind, kann eine unbegrenzte Anzahl von Schaltflächen angezeigt werden.
Wenn der Benutzer ein Befehlsschaltflächen-Steuerelement auswählt, wird der CTaskDialog
Befehl geschlossen. Wenn ihre Anwendung das Dialogfeld mithilfe von CTaskDialog::D oModal anzeigt, DoModal
wird die nCommandControlID des ausgewählten Befehlsschaltflächen-Steuerelements zurückgegeben.
Beispiel
// 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
Fügt der CTaskDialog
Schaltfläche ein Optionsfeld hinzu.
void CTaskDialog::AddRadioButton(
int nRadioButtonID,
const CString& strCaption,
BOOL bEnabled = TRUE);
Parameter
nRadioButtonID
[in] Die Identifikationsnummer des Optionsfelds.
strCaption
[in] Die Zeichenfolge, die CTaskDialog
neben dem Optionsfeld angezeigt wird.
bEnabled
[in] Ein boolescher Parameter, der angibt, ob das Optionsfeld aktiviert ist.
Hinweise
Mit den Optionsfeldern für die CTaskDialog-Klasse können Sie Informationen vom Benutzer sammeln. Verwenden Sie die Funktion CTaskDialog::GetSelectedRadioButtonID , um zu bestimmen, welches Optionsfeld ausgewählt ist.
Dies CTaskDialog
erfordert nicht, dass die nRadioButtonID-Parameter für jedes Optionsfeld eindeutig sind. Es kann jedoch zu unerwartetem Verhalten führen, wenn Sie für jedes Optionsfeld keinen eindeutigen Bezeichner verwenden.
Beispiel
// 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
Klickt programmgesteuert auf ein Befehlsschaltflächen-Steuerelement oder eine allgemeine Schaltfläche.
protected:
void ClickCommandControl(int nCommandControlID) const;
Parameter
nCommandControlID
[in] Die Befehls-ID des zu klickenden Steuerelements.
Hinweise
Diese Methode generiert die Windows-Meldung TDM_CLICK_BUTTON.
CTaskDialog::ClickRadioButton
Klickt programmgesteuert auf ein Optionsfeld.
protected:
void ClickRadioButton(int nRadioButtonID) const;
Parameter
nRadioButtonID
[in] Die ID des zu klickenden Optionsfelds.
Hinweise
Diese Methode generiert die Windows-Meldung TDM_CLICK_RADIO_BUTTON.
CTaskDialog::CTaskDialog
Erstellt eine Instanz der CTaskDialog-Klasse.
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(""));
Parameter
strContent
[in] Die für den Inhalt der CTaskDialog
Zeichenfolge zu verwendende Zeichenfolge.
strMainInstruction
[in] Die Hauptanweisung der CTaskDialog
.
strTitle
[in] Der Titel des CTaskDialog
.
nCommonButtons
[in] Eine Maske der allgemeinen Schaltflächen, die CTaskDialog
dem Steuerelement hinzugefügt werden sollen.
nTaskDialogOptions
[in] Die Gruppe der optionen, die für die CTaskDialog
.
strFooter
[in] Die Zeichenfolge, die als Fußzeile verwendet werden soll.
nIDCommandControlsFirst
[in] Die Zeichenfolgen-ID des ersten Befehls.
nIDCommandControlsLast
[in] Die Zeichenfolgen-ID des letzten Befehls.
Hinweise
Es gibt zwei Möglichkeiten, eine Anwendung hinzuzufügen CTaskDialog
. Die erste Möglichkeit besteht darin, einen der Konstruktoren zum Erstellen CTaskDialog
und Anzeigen mit CTaskDialog::D oModal zu verwenden. Die zweite Möglichkeit besteht darin, die statische Funktion CTaskDialog::ShowDialog zu verwenden, mit der Sie ein CTaskDialog
Objekt ohne explizites Erstellen eines CTaskDialog
Objekts anzeigen können.
Der zweite Konstruktor erstellt Befehlsschaltflächensteuerelemente mithilfe von Daten aus der Ressourcendatei Ihrer Anwendung. Die Zeichenfolgentabelle in der Ressourcendatei enthält mehrere Zeichenfolgen mit zugeordneten Zeichenfolgen-IDs. Diese Methode fügt ein Befehlsschaltflächen-Steuerelement für jeden gültigen Eintrag in der Zeichenfolgentabelle zwischen nIDCommandControlsFirst und nCommandControlsLast (einschließlich) hinzu. Bei diesen Befehlsschaltflächensteuerelementen ist die Zeichenfolge in der Zeichenfolgentabelle die Beschriftung des Steuerelements und die Zeichenfolgen-ID die ID des Steuerelements.
Eine Liste gültiger Optionen finden Sie unter "CTaskDialog::SetOptions ".
Beispiel
// 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
Zeigt das CTaskDialog
Element an und macht es modal.
INT_PTR DoModal (HWND hParent = ::GetActiveWindow());
Parameter
hParent
[in] Das übergeordnete Fenster für das CTaskDialog
.
Rückgabewert
Eine ganze Zahl, die der vom Benutzer getroffenen Auswahl entspricht.
Hinweise
Zeigt diese Instanz des CTaskDialog an. Die Anwendung wartet dann, bis der Benutzer das Dialogfeld schließt.
Wird CTaskDialog
geschlossen, wenn der Benutzer eine allgemeine Schaltfläche, ein Befehlslink-Steuerelement oder das Schließt auswählt CTaskDialog
. Der Rückgabewert ist der Bezeichner, der angibt, wie der Benutzer das Dialogfeld geschlossen hat.
Beispiel
// 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
Ruft die Anzahl der allgemeinen Schaltflächen ab.
int GetCommonButtonCount() const;
Rückgabewert
Die Anzahl der verfügbaren allgemeinen Schaltflächen.
Hinweise
Die allgemeinen Schaltflächen sind die Standardschaltflächen, die Sie für CTaskDialog::CTaskDialog bereitstellen. Die CTaskDialog-Klasse zeigt die Schaltflächen am unteren Rand des Dialogfelds an.
Die aufgezählte Liste der Schaltflächen wird in CommCtrl.h bereitgestellt.
CTaskDialog::GetCommonButtonFlag
Konvertiert eine Windows-Standardschaltfläche in den allgemeinen Schaltflächentyp, der der CTaskDialog-Klasse zugeordnet ist.
int GetCommonButtonFlag(int nButtonId) const;
Parameter
nButtonId
[in] Der Standardmäßige Windows-Schaltflächenwert.
Rückgabewert
Der Wert der entsprechenden CTaskDialog
allgemeinen Schaltfläche. Wenn keine entsprechende allgemeine Schaltfläche vorhanden ist, gibt diese Methode 0 zurück.
CTaskDialog::GetCommonButtonId
Konvertiert einen der allgemeinen Schaltflächentypen, die der CTaskDialog-Klasse zugeordnet sind, in eine Windows-Standardschaltfläche.
int GetCommonButtonId(int nFlag);
Parameter
nFlag
[in] Der allgemeine Schaltflächentyp, der der CTaskDialog
Klasse zugeordnet ist.
Rückgabewert
Der Wert der entsprechenden Windows-Standardschaltfläche. Wenn keine entsprechende Windows-Schaltfläche vorhanden ist, gibt die Methode "0" zurück.
CTaskDialog::GetOptions
Gibt die Optionskennzeichnungen für diesen CTaskDialog
Wert zurück.
int GetOptions() const;
Rückgabewert
Die Kennzeichnungen für die CTaskDialog
.
Hinweise
Weitere Informationen zu den optionen, die für die CTaskDialog-Klasse verfügbar sind, finden Sie unter "CTaskDialog::SetOptions".
Beispiel
// 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
Gibt das ausgewählte Befehlsschaltflächen-Steuerelement zurück.
int GetSelectedCommandControlID() const;
Rückgabewert
Die ID des aktuell ausgewählten Befehlsschaltflächen-Steuerelements.
Hinweise
Sie müssen diese Methode nicht verwenden, um die ID der Befehlsschaltfläche abzurufen, die der Benutzer ausgewählt hat. Diese ID wird entweder von CTaskDialog::D oModal oder CTaskDialog::ShowDialog zurückgegeben.
Beispiel
// 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
Gibt das ausgewählte Optionsfeld zurück.
int GetSelectedRadioButtonID() const;
Rückgabewert
Die ID des ausgewählten Optionsfelds.
Hinweise
Sie können diese Methode verwenden, nachdem der Benutzer das Dialogfeld geschlossen hat, um das ausgewählte Optionsfeld abzurufen.
Beispiel
// 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
Ruft den Status des Überprüfungskontrollkästchens ab.
BOOL GetVerificationCheckboxState() const;
Rückgabewert
TRUE, wenn das Kontrollkästchen aktiviert ist, FALSE, wenn das nicht der Fall ist.
Beispiel
// 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
Bestimmt, ob ein Befehlsschaltflächen-Steuerelement oder eine Befehlsschaltfläche aktiviert ist.
BOOL IsCommandControlEnabled(int nCommandControlID) const;
Parameter
nCommandControlID
[in] Die ID des zu testenden Befehlsschaltflächen-Steuerelements oder der Befehlsschaltfläche.
Rückgabewert
TRUE, wenn das Steuerelement aktiviert ist, FALSE, wenn es nicht der Fall ist.
Hinweise
Mit dieser Methode können Sie die Verfügbarkeit von Befehlsschaltflächensteuerelementen und den allgemeinen Schaltflächen der CTaskDialog
Klasse* ermitteln.
Wenn nCommandControlID kein gültiger Bezeichner für eine allgemeine CTaskDialog
Schaltfläche oder ein Befehlsschaltflächen-Steuerelement ist, löst diese Methode eine Ausnahme aus.
Beispiel
// 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
Bestimmt, ob ein Optionsfeld aktiviert ist.
BOOL IsRadioButtonEnabled(int nRadioButtonID) const;
Parameter
nRadioButtonID
[in] Die ID des zu testenden Optionsfelds.
Rückgabewert
TRUE, wenn das Optionsfeld aktiviert ist, FALSE, wenn dies nicht der Fall ist.
Hinweise
Wenn nRadioButtonID kein gültiger Bezeichner für ein Optionsfeld ist, löst diese Methode eine Ausnahme aus.
Beispiel
// 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
Bestimmt, ob der Computer, auf dem die Anwendung ausgeführt wird, die CTaskDialog
.
static BOOL IsSupported();
Rückgabewert
TRUE, wenn der Computer die CTaskDialog
; Andernfalls FALSE.
Hinweise
Verwenden Sie diese Funktion, um zur Laufzeit zu ermitteln, ob der Computer, auf dem Ihre Anwendung ausgeführt wird, die CTaskDialog
Klasse unterstützt. Wenn der Computer das CTaskDialog
Nicht unterstützt, sollten Sie eine andere Methode für die Kommunikation von Informationen an den Benutzer bereitstellen. Ihre Anwendung stürzt ab, wenn versucht wird, einen CTaskDialog
Computer zu verwenden, der die CTaskDialog
Klasse nicht unterstützt.
Beispiel
// 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
Fügt Befehlsschaltflächensteuerelemente mithilfe von Daten aus der Zeichenfolgentabelle hinzu.
void LoadCommandControls(
int nIDCommandControlsFirst,
int nIDCommandControlsLast);
Parameter
nIDCommandControlsFirst
[in] Die Zeichenfolgen-ID des ersten Befehls.
nIDCommandControlsLast
[in] Die Zeichenfolgen-ID des letzten Befehls.
Hinweise
Diese Methode erstellt Befehlsschaltflächensteuerelemente mithilfe von Daten aus der Ressourcendatei Ihrer Anwendung. Die Zeichenfolgentabelle in der Ressourcendatei enthält mehrere Zeichenfolgen mit zugeordneten Zeichenfolgen-IDs. Neue Befehlsschaltflächensteuerelemente, die mithilfe dieser Methode hinzugefügt werden, verwenden die Zeichenfolge für die Beschriftung des Steuerelements und die Zeichenfolgen-ID für die ID des Steuerelements. Der ausgewählte Zeichenfolgenbereich wird von nIDCommandControlsFirst und nCommandControlsLast (einschließlich) bereitgestellt. Wenn im Bereich ein leerer Eintrag vorhanden ist, fügt die Methode kein Befehlsschaltflächen-Steuerelement für diesen Eintrag hinzu.
Standardmäßig sind neue Befehlsschaltflächen-Steuerelemente aktiviert und erfordern keine Erhöhung.
Beispiel
// 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
Fügt Optionsfeld-Steuerelemente mithilfe von Daten aus der Zeichenfolgentabelle hinzu.
void LoadRadioButtons(
int nIDRadioButtonsFirst,
int nIDRadioButtonsLast);
Parameter
nIDRadioButtonsFirst
[in] Die Zeichenfolgen-ID des ersten Optionsfelds.
nIDRadioButtonsLast
[in] Die Zeichenfolgen-ID des letzten Optionsfelds.
Hinweise
Diese Methode erstellt Optionsfelder mithilfe von Daten aus der Ressourcendatei Ihrer Anwendung. Die Zeichenfolgentabelle in der Ressourcendatei enthält mehrere Zeichenfolgen mit zugeordneten Zeichenfolgen-IDs. Neue Optionsfelder, die mithilfe dieser Methode hinzugefügt werden, verwenden die Zeichenfolge für die Beschriftung des Optionsfelds und die Zeichenfolgen-ID für die ID des Optionsfelds. Der ausgewählte Zeichenfolgenbereich wird von nIDRadioButtonsFirst und nRadioButtonsLast (einschließlich) bereitgestellt. Wenn im Bereich ein leerer Eintrag vorhanden ist, fügt die Methode kein Optionsfeld für diesen Eintrag hinzu.
Standardmäßig sind neue Optionsfelder aktiviert.
Beispiel
// 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
Überträgt den Fokus auf eine andere CTaskDialog
.
protected:
void NavigateTo(CTaskDialog& oTaskDialog) const;
Parameter
oTaskDialog
[in] Das CTaskDialog
, das den Fokus erhält.
Hinweise
Diese Methode blendet den aktuellen CTaskDialog
Aus, wenn er den oTaskDialog anzeigt. Der oTaskDialog wird an derselben Position wie der aktuelle CTaskDialog
angezeigt.
CTaskDialog::OnCommandControlClick
Das Framework ruft diese Methode auf, wenn der Benutzer auf ein Befehlsschaltflächen-Steuerelement klickt.
virtual HRESULT OnCommandControlClick(int nCommandControlID);
Parameter
nCommandControlID
[in] Die ID des Befehlsschaltflächen-Steuerelements, das der Benutzer ausgewählt hat.
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnCreate
Das Framework ruft diese Methode auf, nachdem sie die CTaskDialog
.
virtual HRESULT OnCreate();
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnDestroy
Das Framework ruft diese Methode unmittelbar auf, bevor sie die CTaskDialog
.
virtual HRESULT OnDestroy();
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnExpandButtonClick
Das Framework ruft diese Methode auf, wenn der Benutzer auf die Erweiterungsschaltfläche klickt.
virtual HRESULT OnExpandButtonClicked(BOOL bExpanded);
Parameter
bExpanded
[in] Ein Wert ungleich Null gibt an, dass die zusätzlichen Informationen angezeigt werden; 0 gibt an, dass die zusätzlichen Informationen ausgeblendet sind.
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnHelp
Das Framework ruft diese Methode auf, wenn der Benutzer Hilfe anfordert.
virtual HRESULT OnHelp();
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnHyperlinkClick
Das Framework ruft diese Methode auf, wenn der Benutzer auf einen Link klickt.
virtual HRESULT OnHyperlinkClick(const CString& strHref);
Parameter
strHref
[in] Die Zeichenfolge, die den Link darstellt.
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Diese Methode ruft ShellExecute auf, bevor sie S_OK zurückgibt.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnInit
Das Framework ruft diese Methode beim Initialisieren auf CTaskDialog
.
virtual HRESULT OnInit();
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnNavigatePage
Das Framework ruft diese Methode als Reaktion auf die CTaskDialog::NavigateTo-Methode auf.
virtual HRESULT OnNavigatePage();
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnRadioButtonClick
Das Framework ruft diese Methode auf, wenn der Benutzer ein Optionsfeld-Steuerelement auswählt.
virtual HRESULT OnRadioButtonClick(int nRadioButtonID);
Parameter
nRadioButtonID
[in] Die ID des Optionsfeld-Steuerelements, auf das der Benutzer geklickt hat.
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnTimer
Das Framework ruft diese Methode auf, wenn der Timer abläuft.
virtual HRESULT OnTimer(long lTime);
Parameter
lTime
[in] Zeit in Millisekunden seit dem Erstellen oder CTaskDialog
Zurücksetzen des Timers.
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::OnVerificationCheckboxClick
Das Framework ruft diese Methode auf, wenn der Benutzer auf das Überprüfungskontrollkästchen klickt.
virtual HRESULT OnVerificationCheckboxClick(BOOL bChecked);
Parameter
bChecked
[in] TRUE gibt an, dass das Überprüfungskontrollkästchen aktiviert ist; FALSE gibt an, dass es nicht ist.
Rückgabewert
Die Standardimplementierung gibt S_OK zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefiniertes Verhalten zu implementieren.
CTaskDialog::RemoveAllCommandControls
Entfernt alle Befehlsschaltflächen-Steuerelemente aus dem CTaskDialog
.
void RemoveAllCommandControls();
Beispiel
// 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
Entfernt alle Optionsfelder aus dem CTaskDialog
.
void RemoveAllRadioButtons();
Beispiel
// 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
Aktualisiert ein Befehlsschaltflächen-Steuerelement auf der CTaskDialog
.
void SetCommandControlOptions(
int nCommandControlID,
BOOL bEnabled,
BOOL bRequiresElevation = FALSE);
Parameter
nCommandControlID
[in] Die ID des zu aktualisierenden Befehlssteuerelements.
bEnabled
[in] Ein boolescher Parameter, der angibt, ob das angegebene Befehlsschaltflächen-Steuerelement aktiviert oder deaktiviert ist.
bRequiresElevation
[in] Ein boolescher Parameter, der angibt, ob das angegebene Befehlsschaltflächen-Steuerelement eine Erhöhung erfordert.
Hinweise
Verwenden Sie diese Methode, um zu ändern, ob ein Befehlsschaltflächen-Steuerelement aktiviert ist oder eine Rechteerweiterung erfordert, nachdem es der CTaskDialog
Klasse hinzugefügt wurde.
Beispiel
// 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
Aktualisiert eine Teilmenge allgemeiner Schaltflächen, die aktiviert werden sollen, und erfordert UAC-Rechteerweiterungen.
void SetCommonButtonOptions(
int nDisabledButtonMask,
int nElevationButtonMask = 0);
Parameter
nDisabledButtonMask
[in] Eine Maske für die allgemeinen Schaltflächen, die deaktiviert werden sollen.
nElevationButtonMask
[in] Eine Maske für die allgemeinen Schaltflächen, die eine Erhöhung erfordern.
Hinweise
Sie können die allgemeinen Schaltflächen für eine Instanz der CTaskDialog-Klasse festlegen, indem Sie den Konstruktor CTaskDialog::CTaskDialog und die Methode CTaskDialog::SetCommonButtons verwenden. CTaskDialog::SetCommonButtonOptions
unterstützt das Hinzufügen neuer allgemeiner Schaltflächen nicht.
Wenn Sie diese Methode verwenden, um eine allgemeine Schaltfläche zu deaktivieren oder zu erhöhen, die für diese CTaskDialog
Option nicht verfügbar ist, löst diese Methode eine Ausnahme mithilfe des ENSURE-Makros aus.
Diese Methode aktiviert alle Schaltflächen, die für die CTaskDialog
nDisabledButtonMask verfügbar sind, aber nicht, auch wenn sie zuvor deaktiviert wurde. Diese Methode behandelt Die Rechteerweiterung auf ähnliche Weise: Sie zeichnet allgemeine Schaltflächen auf, da keine Erhöhung erforderlich ist, wenn die allgemeine Schaltfläche verfügbar ist, aber nicht in nElevationButtonMask enthalten ist.
Beispiel
// 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
Fügt allgemeine Schaltflächen zu der CTaskDialog
.
void SetCommonButtons(
int nButtonMask,
int nDisabledButtonMask = 0,
int nElevationButtonMask = 0);
Parameter
nButtonMask
[in] Eine Maske der Schaltflächen, die CTaskDialog
der Schaltfläche hinzugefügt werden sollen.
nDisabledButtonMask
[in] Eine Maske der zu deaktivierenden Schaltflächen.
nElevationButtonMask
[in] Eine Maske der Schaltflächen, die eine Erhöhung erfordern.
Hinweise
Sie können diese Methode nicht aufrufen, nachdem das Anzeigefenster für diese Instanz der CTaskDialog
Klasse erstellt wurde. Wenn Sie dies tun, löst diese Methode eine Ausnahme aus.
Die durch nButtonMask angegebenen Schaltflächen überschreiben alle allgemeinen Schaltflächen, die zuvor der CTaskDialog
Schaltfläche hinzugefügt wurden. Nur die in nButtonMask angegebenen Schaltflächen sind verfügbar.
Wenn nDisabledButtonMask oder nElevationButtonMask eine Schaltfläche enthalten, die sich nicht in nButtonMask befindet, löst diese Methode eine Ausnahme mithilfe des ENSURE-Makros aus.
Standardmäßig sind alle allgemeinen Schaltflächen aktiviert und erfordern keine Erhöhung.
Beispiel
// 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
Aktualisiert den Inhalt der CTaskDialog
.
void SetContent(const CString& strContent);
Parameter
strContent
[in] Die Zeichenfolge, die dem Benutzer angezeigt werden soll.
Hinweise
Der Inhalt der CTaskDialog
Klasse ist der Text, der dem Benutzer im Hauptabschnitt des Dialogfelds angezeigt wird.
Beispiel
// 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
Gibt das Standardmäßige Befehlsschaltflächen-Steuerelement an.
void SetDefaultCommandControl(int nCommandControlID);
Parameter
nCommandControlID
[in] Die ID des Befehlsschaltflächen-Steuerelements als Standard.
Hinweise
Das Standardmäßige Befehlsschaltflächen-Steuerelement ist das Steuerelement, das ausgewählt wird, wenn der CTaskDialog
Benutzer zum ersten Mal angezeigt wird.
Diese Methode löst eine Ausnahme aus, wenn das durch nCommandControlID angegebene Befehlsschaltflächen-Steuerelement nicht gefunden werden kann.
Beispiel
// 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
Gibt das Standard-Optionsfeld an.
void SetDefaultRadioButton(int nRadioButtonID);
Parameter
nRadioButtonID
[in] Die ID des Optionsfelds, das die Standardeinstellung sein soll.
Hinweise
Das Standard-Optionsfeld ist die Schaltfläche, die ausgewählt wird, wenn der CTaskDialog
Benutzer zum ersten Mal angezeigt wird.
Diese Methode löst eine Ausnahme aus, wenn das optionsfeld, das durch nRadioButtonID angegeben ist, nicht gefunden werden kann.
Beispiel
// 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
Passt die Breite der CTaskDialog
.
void SetDialogWidth(int nWidth = 0);
Parameter
nWidth
[in] Die Breite des Dialogfelds in Pixel.
Hinweise
Der Parameter nWidth muss größer oder gleich 0 sein. Andernfalls löst diese Methode eine Ausnahme aus.
Wenn nWidth auf 0 festgelegt ist, legt diese Methode das Dialogfeld auf die Standardgröße fest.
Beispiel
// 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
Aktualisiert den Erweiterungsbereich der CTaskDialog
.
void SetExpansionArea(
const CString& strExpandedInformation,
const CString& strCollapsedLabel = _T(""),
const CString& strExpandedLabel = _T(""));
Parameter
strExpandedInformation
[in] Die Zeichenfolge, CTaskDialog
die im Haupttext des Dialogfelds angezeigt wird, wenn der Benutzer auf die Erweiterungsschaltfläche klickt.
strCollapsedLabel
[in] Die Zeichenfolge, die CTaskDialog
neben der Erweiterungsschaltfläche angezeigt wird, wenn der erweiterte Bereich reduziert wird.
strExpandedLabel
[in] Die Zeichenfolge, die CTaskDialog
neben der Erweiterungsschaltfläche angezeigt wird, wenn der erweiterte Bereich angezeigt wird.
Hinweise
Mit dem Erweiterungsbereich der CTaskDialog
Klasse können Sie dem Benutzer zusätzliche Informationen bereitstellen. Der Erweiterungsbereich befindet sich im Hauptteil des CTaskDialog
, direkt unterhalb des Titels und der Inhaltszeichenfolge.
Wenn die CTaskDialog
erste Anzeige erfolgt, werden die erweiterten Informationen nicht angezeigt und neben der Erweiterungsschaltfläche platziert strCollapsedLabel
. Wenn der Benutzer auf die Erweiterungsschaltfläche klickt, CTaskDialog
wird strExpandedInformation angezeigt und die Bezeichnung in strExpandedLabel geändert.
Beispiel
// 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
Aktualisiert das Fußzeilensymbol der CTaskDialog
.
void SetFooterIcon(HICON hFooterIcon);
void SetFooterIcon(LPCWSTR lpszFooterIcon);
Parameter
hFooterIcon
[in] Das neue Symbol für das CTaskDialog
.
lpszFooterIcon
[in] Das neue Symbol für das CTaskDialog
.
Hinweise
Das Fußzeilensymbol wird unten in der CTaskDialog-Klasse angezeigt. Er kann Fußzeilentext zugeordnet haben. Sie können den Fußzeilentext mit CTaskDialog::SetFooterText ändern.
Diese Methode löst eine Ausnahme mit dem ENSURE-Makro aus, wenn der CTaskDialog
Eingabeparameter angezeigt wird oder der Eingabeparameter NULL ist.
A CTaskDialog
kann nur ein HICON
Oder LPCWSTR
als Fußzeilensymbol akzeptieren. Dies wird durch Festlegen der Option TDF_USE_HICON_FOOTER im Konstruktor oder CTaskDialog::SetOptions konfiguriert. Standardmäßig ist die CTaskDialog
Verwendung LPCWSTR
als Eingabetyp für das Fußzeilensymbol konfiguriert. Diese Methode generiert eine Ausnahme, wenn Sie versuchen, das Symbol mithilfe des unangemessenen Typs festzulegen.
Beispiel
// 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
Aktualisiert den Text auf der Fußzeile der CTaskDialog
.
void SetFooterText(const CString& strFooterText);
Parameter
strFooterText
[in] Der neue Text für die Fußzeile.
Hinweise
Das Fußzeilensymbol wird neben dem Fußzeilentext am unteren Rand des CTaskDialog
Bereichs angezeigt. Sie können das Fußzeilensymbol mit CTaskDialog::SetFooterIcon ändern.
Beispiel
// 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
Aktualisiert das Hauptsymbol der CTaskDialog
.
void SetMainIcon(HICON hMainIcon);
void SetMainIcon(LPCWSTR lpszMainIcon);
Parameter
hMainIcon
[in] Das neue Symbol.
lpszMainIcon
[in] Das neue Symbol.
Hinweise
Diese Methode löst eine Ausnahme mit dem ENSURE-Makro aus, wenn der CTaskDialog
Eingabeparameter angezeigt wird oder der Eingabeparameter NULL ist.
A CTaskDialog
kann nur ein HICON
oder LPCWSTR
als Hauptsymbol akzeptieren. Sie können dies konfigurieren, indem Sie die option TDF_USE_HICON_MAIN im Konstruktor oder in der CTaskDialog::SetOptions-Methode festlegen. Standardmäßig ist die CTaskDialog
Verwendung LPCWSTR
als Eingabetyp für das Hauptsymbol konfiguriert. Diese Methode generiert eine Ausnahme, wenn Sie versuchen, das Symbol mithilfe des unangemessenen Typs festzulegen.
Beispiel
// 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
Aktualisiert die Hauptanweisung der CTaskDialog
.
void SetMainInstruction(const CString& strInstructions);
Parameter
strInstructions
[in] Die neue Hauptanweisung.
Hinweise
Die Hauptanweisung der CTaskDialog
Klasse ist Text, der dem Benutzer in einer großen fett formatierten Schriftart angezeigt wird. Er befindet sich im Dialogfeld unterhalb der Titelleiste.
Beispiel
// 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
Konfiguriert die Optionen für die CTaskDialog
.
void SetOptions(int nOptionFlag);
Parameter
nOptionFlag
[in] Der Satz von Kennzeichnungen, die für die CTaskDialog
.
Hinweise
Diese Methode löscht alle aktuellen Optionen für die CTaskDialog
. Um die aktuellen Optionen beizubehalten, müssen Sie sie zuerst mit CTaskDialog::GetOptions abrufen und mit den Optionen kombinieren, die Sie festlegen möchten.
In der folgenden Tabelle sind alle gültigen Optionen aufgeführt.
Name | Beschreibung |
---|---|
TDF_ENABLE_HYPERLINKS | Aktiviert Links in der CTaskDialog . |
TDF_USE_HICON_MAIN | Konfiguriert die CTaskDialog Verwendung eines HICON Für das Hauptsymbol. Die Alternative ist die Verwendung eines LPCWSTR . |
TDF_USE_HICON_FOOTER | Konfiguriert die CTaskDialog Verwendung eines HICON Symbols für die Fußzeile. Die Alternative ist die Verwendung eines LPCWSTR . |
TDF_ALLOW_DIALOG_CANCELLATION | Ermöglicht es dem Benutzer, die CTaskDialog Schaltfläche mithilfe der Tastatur oder mithilfe des Symbols in der oberen rechten Ecke des Dialogfelds zu schließen, auch wenn die Schaltfläche "Abbrechen " nicht aktiviert ist. Wenn dieses Kennzeichen nicht festgelegt ist und die Schaltfläche "Abbrechen " nicht aktiviert ist, kann der Benutzer das Dialogfeld nicht mithilfe von ALT+F4, der ESCAPE-TASTE oder der Schaltfläche zum Schließen der Titelleiste schließen. |
TDF_USE_COMMAND_LINKS | Konfiguriert die Verwendung von CTaskDialog Befehlsschaltflächensteuerelementen. |
TDF_USE_COMMAND_LINKS_NO_ICON | Konfiguriert die Verwendung von CTaskDialog Befehlsschaltflächensteuerelementen, ohne ein Symbol neben dem Steuerelement anzuzeigen. TDF_USE_COMMAND_LINKS überschreibt TDF_USE_COMMAND_LINKS_NO_ICON. |
TDF_EXPAND_FOOTER_AREA | Gibt an, dass der Erweiterungsbereich zurzeit erweitert ist. |
TDF_EXPANDED_BY_DEFAULT | Bestimmt, ob der Erweiterungsbereich standardmäßig erweitert wird. |
TDF_VERIFICATION_FLAG_CHECKED | Gibt an, dass das Überprüfungskontrollkästchen zurzeit aktiviert ist. |
TDF_SHOW_PROGRESS_BAR | Konfiguriert die CTaskDialog Anzeige einer Statusanzeige. |
TDF_SHOW_MARQUEE_PROGRESS_BAR | Konfiguriert die Statusanzeige so, dass sie eine Statusanzeige des Laufrahmens ist. Wenn Sie diese Option aktivieren, müssen Sie TDF_SHOW_PROGRESS_BAR auf das erwartete Verhalten festlegen. |
TDF_CALLBACK_TIMER | Gibt an, dass das CTaskDialog Rückrufintervall auf ca. 200 Millisekunden festgelegt ist. |
TDF_POSITION_RELATIVE_TO_WINDOW | Konfiguriert die CTaskDialog Zentriert werden, die relativ zum übergeordneten Fenster zentriert werden soll. Wenn dieses Flag nicht aktiviert ist, wird das CTaskDialog Flag relativ zum Monitor zentriert. |
TDF_RTL_LAYOUT | Konfiguriert das CTaskDialog Leselayout von rechts nach links. |
TDF_NO_DEFAULT_RADIO_BUTTON | Gibt an, dass kein Optionsfeld ausgewählt ist, wenn das CTaskDialog Steuerelement angezeigt wird. |
TDF_CAN_BE_MINIMIZED | Ermöglicht es dem Benutzer, die CTaskDialog . Um diese Option zu unterstützen, kann dies CTaskDialog nicht modal sein. MFC unterstützt diese Option nicht, da MFC keinen Modus ohne CTaskDialog Modus unterstützt. |
Beispiel
// 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
Konfiguriert eine Balkenleiste für das CTaskDialog
Dialogfeld und fügt sie dem Dialogfeld hinzu.
void SetProgressBarMarquee(
BOOL bEnabled = TRUE,
int nMarqueeSpeed = 0);
Parameter
bEnabled
[in] TRUE, um die Festrahmenleiste zu aktivieren; FALSE, um die Leiste des Laufrahmens zu deaktivieren und aus der CTaskDialog
Leiste zu entfernen.
nMarqueeSpeed
[in] Eine ganze Zahl, die die Geschwindigkeit des Laufrahmenbalkens angibt.
Hinweise
Unter dem Haupttext der CTaskDialog
Klasse wird der Rahmenbalken angezeigt.
Verwenden Sie nMarqueeSpeed , um die Geschwindigkeit des Laufbalkens festzulegen. Größere Werte deuten auf eine langsamere Geschwindigkeit hin. Der Wert 0 für nMarqueeSpeed bewirkt, dass die Laufleiste mit der Standardgeschwindigkeit für Windows bewegt wird.
Diese Methode löst eine Ausnahme mit dem ENSURE-Makro aus, wenn nMarqueeSpeed kleiner als 0 ist.
Beispiel
// 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
Passt die Position der Statusanzeige an.
void SetProgressBarPosition(int nProgressPos);
Parameter
nProgressPos
[in] Die Position für die Statusanzeige.
Hinweise
Diese Methode löst eine Ausnahme mit dem ENSURE-Makro aus, wenn sich nProgressPos nicht im Statusleistenbereich befindet. Sie können den Bereich der Statusleiste mit CTaskDialog::SetProgressBarRange ändern.
Beispiel
// 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
Passt den Bereich der Statusanzeige an.
void SetProgressBarRange(
int nRangeMin,
int nRangeMax);
Parameter
nRangeMin
[in] Die untere Grenze der Statusanzeige.
nRangeMax
[in] Die obere Grenze der Statusleiste.
Hinweise
Die Position der Statusanzeige ist relativ zu nRangeMin und nRangeMax. Wenn beispielsweise nRangeMin 50 ist und nRangeMax 100 ist, ist eine Position von 75 auf halbem Weg über der Statusleiste. Verwenden Sie CTaskDialog::SetProgressBarPosition , um die Position der Statusleiste festzulegen.
Um die Statusleiste anzuzeigen, muss die Option TDF_SHOW_PROGRESS_BAR aktiviert sein, und TDF_SHOW_MARQUEE_PROGRESS_BAR nicht aktiviert werden dürfen. Diese Methode legt automatisch TDF_SHOW_PROGRESS_BAR fest und löscht TDF_SHOW_MARQUEE_PROGRESS_BAR. Verwenden Sie CTaskDialog::SetOptions , um die Optionen für diese Instanz der CTaskDialog-Klasse manuell zu ändern.
Diese Methode löst eine Ausnahme mit dem ENSURE-Makro aus, wenn nRangeMin nicht kleiner als nRangeMax ist. Diese Methode löst auch eine Ausnahme aus, wenn dies CTaskDialog
bereits angezeigt wird und über eine Statusanzeige für den Laufrahmen verfügt.
Beispiel
// 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
Legt den Status der Statusanzeige fest und zeigt ihn auf der CTaskDialog
.
void SetProgressBarState(int nState = PBST_NORMAL);
Parameter
nState
[in] Der Status der Statusanzeige. Die möglichen Werte finden Sie im Abschnitt "Hinweise".
Hinweise
Mit dieser Methode wird eine Ausnahme mit dem ENSURE-Makro ausgelöst, wenn das CTaskDialog
Makro bereits angezeigt wird und über eine Statusanzeige für das Feld verfügt.
In der folgenden Tabelle sind die möglichen Werte für "nState" aufgeführt. In all diesen Fällen füllt sich die Statusanzeige mit der regulären Farbe, bis sie die festgelegte Stoppposition erreicht. An diesem Punkt wird die Farbe basierend auf dem Zustand geändert.
Name | Beschreibung |
---|---|
PBST_NORMAL | Nachdem die Statusanzeige gefüllt wurde, ändert die CTaskDialog Farbe des Balkens nicht. Standardmäßig ist die normale Farbe grün. |
PBST_ERROR | Nachdem die Statusanzeige gefüllt wurde, ändert sich die CTaskDialog Farbe des Balkens in die Fehlerfarbe. Standardmäßig ist dies rot. |
PBST_PAUSED | Nachdem die Statusleiste gefüllt wurde, ändert sich die CTaskDialog Farbe des Balkens in die angehaltene Farbe. Standardmäßig ist dies gelb. |
Sie können festlegen, wo die Statusleiste mit CTaskDialog::SetProgressBarPosition stoppt.
Beispiel
// 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
Aktiviert oder deaktiviert ein Optionsfeld.
void SetRadioButtonOptions(
int nRadioButtonID,
BOOL bEnabled);
Parameter
nRadioButtonID
[in] Die ID des Optionsfeld-Steuerelements.
bEnabled
[in] TRUE, um das Optionsfeld zu aktivieren; FALSE zum Deaktivieren des Optionsfelds.
Hinweise
Diese Methode löst eine Ausnahme mit dem ENSURE-Makro aus, wenn nRadioButtonID keine gültige ID für ein Optionsfeld ist.
Beispiel
// 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
Legt den aktivierten Status des Überprüfungskontrollkästchens fest.
void SetVerificationCheckbox(BOOL bChecked);
Parameter
bChecked
[in] TRUE, damit das Überprüfungskontrollkästchen aktiviert ist, wenn das CTaskDialog
Kontrollkästchen angezeigt wird; FALSE, damit das Überprüfungskontrollkästchen beim Anzeigen des CTaskDialog
Kontrollkästchens deaktiviert ist.
Beispiel
// 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
Legt den Text fest, der rechts neben dem Überprüfungskontrollkästchen angezeigt wird.
void SetVerificationCheckboxText(CString& strVerificationText);
Parameter
strVerificationText
[in] Der Text, den diese Methode neben dem Überprüfungskontrollkästchen anzeigt.
Hinweise
Diese Methode löst eine Ausnahme mit dem ENSURE-Makro aus, wenn diese Instanz der CTaskDialog
Klasse bereits angezeigt wird.
Beispiel
// 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
Legt den Titel des CTaskDialog
.
void SetWindowTitle(CString& strWindowTitle);
Parameter
strWindowTitle
[in] Der neue Titel für die CTaskDialog
.
Hinweise
Beispiel
// 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
Erstellt und zeigt eine 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(""));
Parameter
strContent
[in] Die für den Inhalt der CTaskDialog
Zeichenfolge zu verwendende Zeichenfolge.
strMainInstruction
[in] Die Hauptanweisung der CTaskDialog
.
strTitle
[in] Der Titel des CTaskDialog
.
nIDCommandControlsFirst
[in] Die Zeichenfolgen-ID des ersten Befehls.
nIDCommandControlsLast
[in] Die Zeichenfolgen-ID des letzten Befehls.
nCommonButtons
[in] Eine Maske der Schaltflächen, die CTaskDialog
der Schaltfläche hinzugefügt werden sollen.
nTaskDialogOptions
[in] Die Gruppe der optionen, die für die CTaskDialog
.
strFooter
[in] Die Zeichenfolge, die als Fußzeile verwendet werden soll.
Rückgabewert
Eine ganze Zahl, die der vom Benutzer getroffenen Auswahl entspricht.
Hinweise
Mit dieser statischen Methode können Sie eine Instanz der CTaskDialog
Klasse erstellen, ohne explizit ein CTaskDialog
Objekt in Ihrem Code zu erstellen. Da kein CTaskDialog
Objekt vorhanden ist, können Sie keine anderen Methoden der CTaskDialog
Methode aufrufen, wenn Sie diese Methode zum Anzeigen eines CTaskDialog
Objekts für den Benutzer verwenden.
Diese Methode erstellt Befehlsschaltflächensteuerelemente mithilfe von Daten aus der Ressourcendatei Ihrer Anwendung. Die Zeichenfolgentabelle in der Ressourcendatei enthält mehrere Zeichenfolgen mit zugeordneten Zeichenfolgen-IDs. Diese Methode fügt ein Befehlsschaltflächen-Steuerelement für jeden gültigen Eintrag in der Zeichenfolgentabelle zwischen nIDCommandControlsFirst und nCommandControlsLast (einschließlich) hinzu. Bei diesen Befehlsschaltflächensteuerelementen ist die Zeichenfolge in der Zeichenfolgentabelle die Beschriftung des Steuerelements und die Zeichenfolgen-ID die ID des Steuerelements.
Eine Liste gültiger Optionen finden Sie unter "CTaskDialog::SetOptions ".
Wird CTaskDialog
geschlossen, wenn der Benutzer eine allgemeine Schaltfläche, ein Befehlslink-Steuerelement oder das Schließt auswählt CTaskDialog
. Der Rückgabewert ist der Bezeichner, der angibt, wie der Benutzer das Dialogfeld geschlossen hat.
Beispiel
// 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
Das Framework ruft diese Methode als Reaktion auf verschiedene Windows-Nachrichten auf.
friend:
HRESULT TaskDialogCallback(
HWND hWnd,
UINT uNotification,
WPARAM wParam,
LPARAM lParam,
LONG_PTR dwRefData);
Parameter
hwnd
[in] Ein Handle für die m_hWnd
Struktur für die CTaskDialog
.
UNotification
[in] Der Benachrichtigungscode, der die generierte Nachricht angibt.
wParam
[in] Weitere Informationen zur Nachricht.
lParam
[in] Weitere Informationen zur Nachricht.
dwRefData
[in] Ein Zeiger auf das CTaskDialog
Objekt, auf das die Rückrufnachricht angewendet wird.
Rückgabewert
Hängt vom spezifischen Benachrichtigungscode ab. Weitere Informationen finden Sie im Abschnitt Hinweise.
Hinweise
Die Standardimplementierung der TaskDialogCallback
spezifischen Nachricht und ruft dann die entsprechende On-Methode der CTaskDialog-Klasse auf. Ruft beispielsweise als Reaktion auf die TDN_BUTTON_CLICKED Nachricht TaskDialogCallback
CTaskDialog::OnCommandControlClick auf.
Die Werte für wParam und lParam hängen von der jeweiligen generierten Nachricht ab. Es ist möglich, dass beide Werte leer sind. In der folgenden Tabelle sind die standardbenachrichtigungen aufgeführt, die unterstützt werden und welche Werte von wParam und lParam darstellen. Wenn Sie diese Methode in einer abgeleiteten Klasse überschreiben, sollten Sie den Rückrufcode für jede Nachricht in der folgenden Tabelle implementieren.
Benachrichtigung | wParam-Wert | lParam-Wert |
---|---|---|
TDN_CREATED | Nicht verwendet. | Nicht verwendet. |
TDN_NAVIGATED | Nicht verwendet. | Nicht verwendet. |
TDN_BUTTON_CLICKED | Die Befehlsschaltflächen-Steuerelement-ID. | Wird nicht verwendet. |
TDN_HYPERLINK_CLICKED | Wird nicht verwendet. | Eine LPCWSTR-Struktur , die den Link enthält. |
TDN_TIMER | Zeit in Millisekunden seit dem Erstellen oder CTaskDialog Zurücksetzen des Timers. |
Wird nicht verwendet. |
TDN_DESTROYED | Nicht verwendet. | Nicht verwendet. |
TDN_RADIO_BUTTON_CLICKED | Die Optionsfeld-ID. | Wird nicht verwendet. |
TDN_DIALOG_CONSTRUCTED | Nicht verwendet. | Nicht verwendet. |
TDN_VERIFICATION_CLICKED | 1, wenn das Kontrollkästchen aktiviert ist, 0, wenn das nicht der Kontrollkästchen ist. | Wird nicht verwendet. |
TDN_HELP | Nicht verwendet. | Nicht verwendet. |
TDN_EXPANDO_BUTTON_CLICKED | 0, wenn die Erweiterungsfläche reduziert ist; nonzero, wenn der Erweiterungstext angezeigt wird. | Wird nicht verwendet. |
Siehe auch
Klassen
CObject-Klasse
Hierarchiediagramm
Exemplarische Vorgehensweise: Hinzufügen eines CTaskDialog zu einer Anwendung