TaskDialogIndirect-Funktion (commctrl.h)

Die TaskDialogIndirect-Funktion erstellt, zeigt ein Aufgabendialogfeld an und betreibt es. Das Aufgabendialogfeld enthält anwendungsdefinierte Symbole, Nachrichten, Titel, Überprüfungskontrollkästchen, Befehlslinks, Pushschaltflächen und Optionsfelder. Diese Funktion kann eine Rückruffunktion registrieren, um Benachrichtigungen zu empfangen.

Syntax

HRESULT TaskDialogIndirect(
  [in]            const TASKDIALOGCONFIG *pTaskConfig,
  [out, optional] int                    *pnButton,
  [out, optional] int                    *pnRadioButton,
  [out, optional] BOOL                   *pfVerificationFlagChecked
);

Parameter

[in] pTaskConfig

Typ: const TASKDIALOGCONFIG*

Zeiger auf eine TASKDIALOGCONFIG-Struktur , die Informationen enthält, die zum Anzeigen des Aufgabendialogfelds verwendet werden.

[out, optional] pnButton

Typ: int*

Adresse einer Variablen, die folgendes empfängt:

  • eine der Schaltflächen-IDs, die im pButtons-Element des pTaskConfig-Parameters angegeben sind
  • einer der folgenden Werte:
Wert BESCHREIBUNG
0 Fehler beim Funktionsaufruf. Weitere Informationen finden Sie unter Rückgabewert.
IDCANCEL Die Schaltfläche Abbrechen wurde ausgewählt, ALT-F4 wurde gedrückt, Escape wurde gedrückt, oder der Benutzer klickte auf die Schaltfläche zum Schließen des Fensters.
IDNO Es wurde keine Schaltfläche ausgewählt.
IDOK Die Schaltfläche OK wurde ausgewählt.
IDRETRY Die Schaltfläche "Wiederholen " wurde ausgewählt.
IDYES Die Schaltfläche "Ja" wurde ausgewählt.
 

Wenn dieser Parameter NULL ist, wird kein Wert zurückgegeben.

[out, optional] pnRadioButton

Typ: int*

Adresse einer Variablen, die eine der Schaltflächen-IDs empfängt, die im pRadioButtons-Element des pTaskConfig-Parameters angegeben sind. Wenn dieser Parameter NULL ist, wird kein Wert zurückgegeben.

[out, optional] pfVerificationFlagChecked

Typ: BOOL*

Adresse einer Variablen, die einen der folgenden Werte empfängt.

Wert Beschreibung
TRUE Das Überprüfungskontrollkästchen wurde aktiviert, als das Dialogfeld geschlossen wurde.
FALSE Das Überprüfungskontrollkästchen wurde beim Schließen des Dialogfelds nicht aktiviert.
 

Wenn dieser Parameter NULL ist, ist das Überprüfungskontrollkästchen deaktiviert.

Rückgabewert

Typ: HRESULT

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Der Vorgang wurde erfolgreich abgeschlossen.
E_OUTOFMEMORY
Es ist nicht genügend Arbeitsspeicher vorhanden, um den Vorgang abzuschließen.
E_INVALIDARG
Mindestens ein Argument ist ungültig.
E_FAIL
Fehler beim Vorgang.

Hinweise

Wenn Sie ein Aufgabendialogfeld verwenden, um anzugeben, dass das System wenig Arbeitsspeicher hat, sollten die Zeichenfolgen, auf die die verschiedenen Zeichenfolgen- und Symbolmember in der TASKDIALOGCONFIG-Struktur verweisen, nicht aus einer Ressourcendatei entnommen werden, da der Versuch, die Ressource zu laden, möglicherweise fehlschlägt.

Wenn Sie ein Aufgabendialogfeld erstellen, während ein Dialogfeld vorhanden ist, verwenden Sie ein Handle für das Dialogfeld als hWndParent-Parameter . Der Parameter hWndParent sollte kein untergeordnetes Fenster identifizieren, z. B. ein Steuerelement in einem Dialogfeld.

Das übergeordnete Fenster sollte nicht ausgeblendet oder deaktiviert werden, wenn diese Funktion aufgerufen wird.


int nButtonPressed                  = 0;
TASKDIALOGCONFIG config             = {0};
const TASKDIALOG_BUTTON buttons[]   = { 
                                        { IDOK, L"Change password" }
                                      };
config.cbSize                       = sizeof(config);
config.hInstance                    = hInst;
config.dwCommonButtons              = TDCBF_CANCEL_BUTTON;
config.pszMainIcon                  = TD_WARNING_ICON;
config.pszMainInstruction           = L"Change Password";
config.pszContent                   = L"Remember your changed password.";
config.pButtons                     = buttons;
config.cButtons                     = ARRAYSIZE(buttons);

TaskDialogIndirect(&config, &nButtonPressed, NULL, NULL);
switch (nButtonPressed)
{
    case IDOK:
        break; // the user pressed button 0 (change password).
    case IDCANCEL:
        break; // user canceled the dialog
    default:
        break; // should never happen
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile commctrl.h (include Commctrl.h)
Bibliothek Comctl32.lib
DLL Comctl32.dll (Version 6)

Weitere Informationen

Dialogfelder