PSN_WIZBACK Benachrichtigungscode

Benachrichtigt eine Seite, dass der Benutzer in einem Assistenten auf die Schaltfläche Zurück geklickt hat. Dieser Benachrichtigungscode wird in Form einer WM_NOTIFY Nachricht gesendet.

PSN_WIZBACK 

    lppsn = (LPPSHNOTIFY) lParam; 

Parameter

lParam

Zeiger auf eine PSHNOTIFY-Struktur , die Informationen zum Benachrichtigungscode enthält. Diese Struktur enthält eine NMHDR-Struktur als erstes Element, hdr. Das hwndFrom-Element dieser NMHDR-Struktur enthält das Handle zum Eigenschaftenblatt. Das lParam-Element der PSHNOTIFY-Struktur enthält keine Informationen.

Rückgabewert

Gibt 0 zurück, damit der Assistent zur vorherigen Seite wechseln kann. Gibt -1 zurück, um zu verhindern, dass der Assistent Seiten ändert. Um eine bestimmte Seite anzuzeigen, geben Sie deren Dialogfeldressourcenbezeichner zurück. Wenn das Dialogfeld mit dem PSP_DLGINDIRECT-Flag angegeben wurde, gibt diese Benachrichtigung den Zeiger auf die Dialogvorlage zurück.

Bemerkungen

Um den Rückgabewert festzulegen, muss die Dialogfeldprozedur für die Seite die SetWindowLong-Funktion mit dem DWL_MSGRESULT-Wert aufrufen und TRUE zurückgeben. Beispiel:

case PSN_WIZBACK :
    SetWindowLong(hDlg, DWL_MSGRESULT, 0);
    break;

case PSN_WIZNEXT :
    ...

Hinweis

Das Eigenschaftenblatt ist gerade dabei, die Liste der Seiten zu bearbeiten, wenn der PSN_WIZBACK Benachrichtigungscode gesendet wird. Sie können Seiten als Reaktion auf diese Benachrichtigungscodes hinzufügen, einfügen oder entfernen. Besondere Vorsicht ist jedoch erforderlich, wenn Sie Seiten vor der aktuellen Seite einfügen oder entfernen.

Wenn Sie Seiten vor der aktuellen Seite einfügen oder entfernen, müssen Sie (bis DWL_MSGRESULT) einen Wert ohne Zero zurückgeben, um die gewünschte neue Seite anzugeben. Beachten Sie jedoch, dass beim Einfügen oder Entfernen einer Seite, die sich vor der aktuellen Seite befindet (die einen kleineren Index als die aktuelle Seite aufweist), PSN_KILLACTIVE möglicherweise an die falsche Seite gesendet wird.

Aus diesem Grund wird empfohlen, dass Assistenten, die Seiten dynamisch als Reaktion auf PSN_WIZNEXT hinzufügen und entfernen, und PSN_WIZBACK dies nur auf Seiten am Ende der Liste tun. Wenn Der Assistent Seiten genau entfernen soll, behalten Sie die dynamischen Seiten am Ende der Liste bei, und wechseln Sie zurück zu dauerhaften Seiten, bevor Sie sie löschen.

Angenommen, ein Assistent besteht aus einer Einführungsseite, einer Reihe von dynamischen Seiten und einer Vervollständigungsseite, und Sie möchten die dynamischen Seiten löschen, wenn der Benutzer die Abschlussseite erreicht.

  1. Der Assistent beginnt mit zwei Seiten, "Einführung" und "Vervollständigung". Der Benutzer beginnt auf der Seite "Einführung".
    1. Einführung (Benutzer ist hier)
    2. Completion
  2. Wenn der Benutzer von "Einführung" weg navigiert, fügt der Assistent die dynamischen Seiten hinzu und platziert den Benutzer auf der ersten dynamischen Seite, indem er (über DWL_MSGRESULT) den Dialogbezeichner der Seite "Dynamisch 1" zurückgibt. In diesem Beispiel gibt es drei dynamische Seiten.
    1. Einführung
    2. Completion
    3. Dynamisch 1 (Benutzer ist hier)
    4. Dynamisch 2
    5. Dynamisch 3
  3. Nachdem der Benutzer durch die dynamischen Seiten zu "Dynamisch 3" navigiert und dann zur nächsten Seite navigiert hat, sollte die Anwendung den Benutzer auf der Seite "Abschluss" platzieren. Auch dies geschieht, indem (über DWL_MSGRESULT) der Dialogbezeichner der Seite "Vervollständigung" zurückgegeben wird.
    1. Einführung
    2. Vervollständigung (Der Benutzer ist hier)
    3. Dynamisch 1
    4. Dynamisch 2
    5. Dynamisch 3
  4. Die Anwendung kann dann die drei dynamischen Seiten (nummeriert drei bis fünf) sicher entfernen.
    1. Einführung
    2. Vervollständigung (Der Benutzer ist hier)

Beachten Sie, dass dieses Verfahren nur erforderlich ist, wenn der Assistent Seiten dynamisch entfernt. Wenn Ihr Assistent seiten nur dynamisch hinzufügt, ist dieser Prozess nicht erforderlich.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]
Header
Prsht.h