PSN_WIZNEXT Benachrichtigungscode

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

PSN_WIZNEXT 

    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 für das Eigenschaftenblatt. Das lParam-Element der PSHNOTIFY-Struktur enthält keine Informationen.

Rückgabewert

Geben Sie 0 zurück, damit der Assistent zur nächsten Seite wechseln kann. Geben Sie -1 zurück, um zu verhindern, dass der Assistent Seiten ändert. Um eine bestimmte Seite anzuzeigen, geben Sie den zugehörigen Dialogressourcenbezeichner zurück. Wenn das Dialogfeld mit dem flag PSP_DLGINDIRECT 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. Zum Beispiel:

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

case PSN_WIZBACK :
    ...

Hinweis

Das Eigenschaftenblatt bearbeitet gerade die Liste der Seiten, wenn der PSN_WIZNEXT 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 ungleich 0 (null) 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 und PSN_WIZBACK hinzufügen und entfernen, 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 springen Sie zurück zu dauerhaften Seiten, bevor Sie sie löschen.

Angenommen, ein Assistent besteht aus einer Einführungsseite, einer Reihe dynamischer Seiten und einer Abschlussseite, 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 "Abschluss". 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 "Dynamic 3" navigiert und dann zur nächsten Seite navigiert, sollte die Anwendung den Benutzer auf der Seite "Abschluss" platzieren. Auch dies geschieht, indem (über DWL_MSGRESULT) der Dialogbezeichner der Seite "Abschluss" 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 diese Technik nur erforderlich ist, wenn der Assistent Seiten dynamisch entfernt. Wenn der Assistent seiten nur dynamisch hinzufügt, ist dieser Vorgang 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