Freigeben über


Exemplarische Vorgehensweise: Hinzufügen von einem CTaskDialog zu einer Anwendung

Diese exemplarische Vorgehensweise führt CTaskDialog-Klasse ein, und es wird erläutert, wie ein Ihrer Anwendung hinzugefügt wird.

CTaskDialog ist ein Aufgabendialogfeld, das das Windows-Meldungs-Feld in Windows Vista ersetzt.CTaskDialog das Feld verbessert sich die ursprüngliche Meldung hinzu und funktionell erweitert.Das Windows-Meldungs-Feld wird weiterhin in Visual Studio unterstützt.

HinweisHinweis

Versionen von Windows älter als Windows Vista unterstützen keine CTaskDialog.Sie müssen eine alternative Dialogfeld Programm Option, wenn Sie eine Meldung anzeigen möchten ein Benutzer die Anwendung auf eine frühere Version von Windows ausgeführt wird.Sie können die statische Methode CTaskDialog::IsSupported verwenden, um zur Laufzeit zu bestimmen, ob der Computer eines Benutzers CTaskDialog anzeigen kann.Außerdem ist CTaskDialog nur verfügbar, wenn die Anwendung mit der Unicode-Bibliothek erstellt wird.

CTaskDialog unterstützt mehrere optionale Elemente, um Informationen zu erfassen und anzuzeigen.Beispielsweise kann CTaskDialog Befehls links, um benutzerdefinierte Schaltflächen, um benutzerdefinierte Symbole und Footer anzeigen.CTaskDialog verfügt auch über mehrere Methoden bereit, mit denen Sie den Zustand des Dialogfelds Aufgaben abfragen, um festzustellen, welche optionalen Elemente der Benutzer ausgewählt hat.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Visual Studio 2010

  • Windows Vista

Ein Windows-Meldungs-Feld mit einem CTaskDialog ersetzen

In der folgenden Prozedur wird die grundlegende Verwendung CTaskDialog, die das Windows-Meldungs-Feld ersetzt wird.In diesem Beispiel wird auch das Symbol, das dem Aufgabendialogfeld zugeordnet ist.Das Ändern des Symbols können CTaskDialog zum Windows-Meldungs-Feld identisch aussehen.

So fügen Sie ein Windows-Meldungs-Feld Ersetzen durch ein CTaskDialog

  1. Erstellen Sie ein neues MFC-Anwendungsprojekt mit den Standardeinstellungen.Nennen Sie es MyProject.

  2. Verwenden Sie Projektmappen-Explorer MyProject.cpp, um die Datei zu öffnen.

  3. Fügen Sie #include "afxtaskdialog.h" hinzu, nachdem die Liste enthält.

  4. Suchen Sie die Methode CMyProjectApp::InitInstance.Fügen Sie die folgenden Codezeilen vor der return TRUE;-Anweisung ein.Dieser Code erstellt die Zeichenfolgen, die entweder im Windows-Meldungs-Feld oder CTaskDialog verwenden.

    CString message("My message to the user");
    CString dialogTitle("My Task Dialog title");
    CString emptyString;
    
  5. Fügen Sie den folgenden Code nach dem Code aus Schritt 4 hinzu.Dieser Code wird sichergestellt, dass der Computer des Benutzers CTaskDialog unterstützt.Wenn das Dialogfeld nicht unterstützt wird, wird von der Anwendung ein Windows-Meldungs-Feld stattdessen an.

    if (CTaskDialog::IsSupported())
    {
    
    }
    else
    {
       AfxMessageBox(message);
    }
    
  6. Fügen Sie den folgenden Code zwischen den Klammern hinter der if-Anweisung aus Schritt 5 ein.Dieser Code erstellt CTaskDialog.

    CTaskDialog taskDialog(message, emptyString, dialogTitle, TDCBF_OK_BUTTON);
    
  7. Wählen Sie auf der nächsten Zeile fügen Sie den folgenden Code hinzu.Durch diesen Code wird das Warnsymbol.

    taskDialog.SetMainIcon(TD_WARNING_ICON);
    
  8. Wählen Sie auf der nächsten Zeile fügen Sie den folgenden Code hinzu.Dieser Code wird das Aufgabendialogfeld angezeigt.

    taskDialog.DoModal();
    

Sie können Schritt 7 CTaskDialog weglassen, wenn Sie nicht dasselbe Symbol wie das Windows-Meldungs-Feld angezeigt werden sollen.Wenn Sie diesen Schritt auslassen, hat CTaskDialog kein Symbol, wenn die Anwendung sie anzeigt.

Kompilieren Sie die Anwendung, und führen Sie sie aus.Die Anwendung zeigt das Aufgabendialogfeld angezeigt, nachdem sie gestartet wird.

Funktionen für das Hinzufügen von CTaskDialog

Im folgenden Verfahren wird beschrieben, wie Funktionen CTaskDialog hinzufügen, das Sie im vorherigen Verfahren erstellt haben.Im Beispielcode wird gezeigt, wie bestimmte Anweisungen basierend auf der Auswahl des Benutzers ausführt.

Weitere Funktionen für das Hinzufügen von CTaskDialog

  1. Navigieren Sie zu Ressourcenansicht.Wenn Sie Ressourcenansicht nicht sehen können, können Sie es im Menü Ansicht öffnen.

  2. Erweitern Sie Ressourcenansicht, bis Sie den Ordner Zeichenfolgentabelle auswählen können.Erweitern Sie sie, und doppelklicken Sie auf den Zeichenfolgentabelle Eintrag.

  3. Führen Sie zum Ende der Zeichenfolgentabelle Bildlauf durch, und fügen Sie einen neuen Eintrag hinzu.Ändern Sie die ID TEMP_LINE1.Legen Sie die Bezeichnung auf Befehlszeile 1 fest.

  4. Fügen Sie einen anderen neuen Eintrag hinzu.Ändern Sie die ID TEMP_LINE2.Legen Sie die Bezeichnung auf Befehlszeile 2 fest.

  5. Navigieren Sie zurück zur MyProject.cpp.

  6. Nach CString emptyString; fügen Sie den folgenden Code hinzu:

    CString expandedLabel("Hide extra information");
    CString collapsedLabel("Show extra information");
    CString expansionInfo("This is the additional information to the user,\nextended over two lines.");
    
  7. Suchen Sie die taskDialog.DoModal()-Anweisung, und ersetzen Sie diese Anweisung durch den folgenden Code.Dieser Code aktualisiert das Aufgabendialogfeld und fügt neue Steuerelemente hinzu:

    taskDialog.SetMainInstruction(L"Warning");
    taskDialog.SetCommonButtons(TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);
    taskDialog.LoadCommandControls(TEMP_LINE1, TEMP_LINE2);
    taskDialog.SetExpansionArea(expansionInfo, collapsedLabel, expandedLabel);
    taskDialog.SetFooterText(L"This is the a small footnote to the user");
    taskDialog.SetVerificationCheckboxText(L"Remember your selection");
    
  8. Fügen Sie die folgende Codezeile hinzu, die das Aufgabendialogfeld dem Benutzer anzeigt und die Auswahl des Benutzers abgerufen werden:

    INT_PTR result = taskDialog.DoModal();
    
  9. Fügen Sie den folgenden Code nach dem Aufruf von taskDialog.DoModal() ein.In diesem Abschnitt des Codes verarbeitet die Eingabe des Benutzers:

    if (taskDialog.GetVerificationCheckboxState() )
    {
       // PROCESS IF the user selects the verification checkbox 
    }
    
    switch (result)
    {
       case TEMP_LINE1:
          // PROCESS IF the first command line
          break;
       case TEMP_LINE2:
          // PROCESS IF the second command line
          break;
       case IDYES:
          // PROCESS IF the user clicks yes
          break;
       case IDNO:
          // PROCESS IF the user clicks no
          break;
       case IDCANCEL:
          // PROCESS IF the user clicks cancel
          break;
       default:
          // This case should not be hit because closing the dialog box results in IDCANCEL
          break;
    }
    

Im Code in Schritt 9, ersetzen Sie die Kommentare, die mit PROCESS IF mit dem Code beginnen, den Sie unter den angegebenen Bedingungen ausführen möchten.

Kompilieren Sie die Anwendung, und führen Sie sie aus.Die Anwendung zeigt das Aufgabendialogfeld angezeigt, das die neuen Steuerelemente und die zusätzlichen Informationen verwendet.

Ein CTaskDialog anzeigen, ohne ein CTaskDialog-Objekt zu erstellen

Im folgenden Verfahren wird beschrieben, wie CTaskDialog anzeigt, ohne ein CTaskDialog anfänglich zu erstellen.Dieses Beispiel setzt die vorherigen Verfahren fort.

So fügen Sie ein CTaskDialog anzeigen, ohne ein CTaskDialog-Objekt zu erstellen

  1. Öffnen Sie die MyProject.cpp-Datei, wenn sie nicht bereits geöffnet ist.

  2. Navigieren Sie zur eckige Klammer für die if (CTaskDialog::IsSupported())-Anweisung.

  3. Fügen Sie den folgenden Code direkt vor der eckige Klammer der if-Anweisung ein (bevor der else-Block):

    HRESULT result2 = CTaskDialog::ShowDialog(L"My error message", L"Error", L"New Title", TEMP_LINE1, TEMP_LINE2);
    

Kompilieren Sie die Anwendung, und führen Sie sie aus.Die Anwendung zeigt zwei Aufgaben bearbeiten.Das erste Dialogfeld ist aus, um Funktionen der CTaskDialog-Prozedur hinzuzufügen. Das zweite Dialogfeld ist nach der letzten Prozedur.

In diesen Beispielen werden nicht alle verfügbaren Optionen für CTaskDialog, doch sollten Sie zu beginnen.Weitere Informationen finden Sie unter CTaskDialog-Klasse für eine vollständige Beschreibung der Klasse.

Siehe auch

Referenz

CTaskDialog-Klasse

CTaskDialog::CTaskDialog

Konzepte

Dialogfelder