PSN_APPLY Benachrichtigungscode

Wird an jede Seite im Eigenschaftenblatt gesendet, um anzugeben, dass der Benutzer auf die Schaltfläche OK, Schließen oder Anwenden geklickt hat und alle Änderungen wirksam werden sollen. Dieser Benachrichtigungscode wird in Form einer WM_NOTIFY Nachricht gesendet.

PSN_APPLY 

    lppsn = (LPPSHNOTIFY) lParam; 

Parameter

lParam

Zeiger auf eine PSHNOTIFY-Struktur , die Informationen zum Benachrichtigungscode enthält, einschließlich der ID der Seite.

Rückgabewert

Legen Sie PSNRET_NOERROR fest, um anzugeben, dass die an dieser Seite vorgenommenen Änderungen gültig sind und angewendet wurden. Wenn alle Seiten PSNRET_NOERROR festgelegt sind, kann das Eigenschaftenblatt zerstört werden. Um anzugeben, dass die an dieser Seite vorgenommenen Änderungen ungültig sind, und um zu verhindern, dass das Eigenschaftenblatt zerstört wird, legen Sie einen der folgenden Rückgabewerte fest:

  • PSNRET_INVALID. Das Eigenschaftenblatt wird nicht zerstört, und der Fokus wird auf diese Seite zurückgegeben.
  • PSNRET_INVALID_NOCHANGEPAGE. Das Eigenschaftenblatt wird nicht zerstört, und der Fokus wird auf die Seite zurückgegeben, die beim Drücken der Schaltfläche den Fokus hatte.

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

Bemerkungen

Wenn der Benutzer auf die Schaltfläche OK, Anwenden oder Schließen klickt, sendet das Eigenschaftenblatt eine PSN_KILLACTIVE Benachrichtigung an die aktive Seite, sodass die Änderungen des Benutzers überprüft werden können. Wenn die Änderungen gültig sind, sendet das Eigenschaftenblatt einen PSN_APPLY-Benachrichtigungscode an jede Seite und weist ihn an, die neuen Eigenschaften auf das entsprechende Element anzuwenden.

Hinweis

Das Eigenschaftenblatt bearbeitet gerade die Liste der Seiten, wenn der PSN_APPLY Benachrichtigungscode gesendet wird. Versuchen Sie nicht, Seiten hinzuzufügen, zu entfernen oder einzufügen, während Sie diese Benachrichtigung behandeln. Dies führt zu unvorhersehbaren Ergebnissen.

Das lParam-Element der PSHNOTIFY-Struktur , auf die von lParam verwiesen wird, wird auf TRUE festgelegt, wenn der Benutzer auf die Schaltfläche OK klickt. Sie wird auch auf TRUE festgelegt, wenn die PSM_CANCELTOCLOSE Nachricht gesendet wurde und der Benutzer auf die Schaltfläche Schließen klickt. Sie wird auf FALSE festgelegt, wenn der Benutzer auf die Schaltfläche Übernehmen klickt.

Die PSHNOTIFY-Struktur enthält eine NMHDR-Struktur als erstes Element, hdr. Das hwndFrom-Element dieser NMHDR-Struktur enthält das Handle für das Eigenschaftenblatt.

Rufen Sie die EndDialog-Funktion nicht auf, wenn Sie diesen Benachrichtigungscode verarbeiten.

Ein modales Eigenschaftenblatt wird zerstört, wenn der Benutzer auf die Schaltfläche OK klickt und jede Seite den PSNRET_NOERROR Wert als Reaktion auf PSN_APPLY zurückgibt. Wenn eine Seite PSNRET_INVALID oder PSNRET_INVALID_NOCHANGEPAGE zurückgibt, wird der Vorgang Anwenden sofort abgebrochen. Seiten nach der Abbruchseite erhalten keinen PSN_APPLY Benachrichtigungscode.

Um diesen Benachrichtigungscode zu erhalten, muss eine Seite den wert der DWL_MSGRESULT als Reaktion auf den PSN_KILLACTIVE Benachrichtigungscode auf FALSE festlegen.

Hinweis

Dieser Benachrichtigungscode wird bei Verwendung des Aero-Assistentenstils (PSH_AEROWIZARD) nicht unterstützt.

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