Verwenden der Schaltfläche „Anwenden“

Eigenschaftenblätter verfügen über eine Funktion, die Standarddialogfelder nicht verwenden: Sie ermöglichen es dem Benutzer, änderungen anzuwenden, die er vor dem Schließen des Eigenschaftenblatts vorgenommen hat. Dies erfolgt mithilfe der Schaltfläche Anwenden. In diesem Artikel werden Methoden erläutert, die Sie verwenden können, um dieses Feature ordnungsgemäß zu implementieren.

Modale Dialogfelder wenden die Einstellungen normalerweise auf ein externes Objekt an, wenn der Benutzer auf OK klickt, um das Dialogfeld zu schließen. Dasselbe gilt für ein Eigenschaftenblatt: Wenn der Benutzer auf OK klickt, werden die neuen Einstellungen im Eigenschaftenblatt wirksam.

Möglicherweise möchten Sie dem Benutzer jedoch erlauben, Einstellungen zu speichern, ohne das Eigenschaftenblattdialogfeld schließen zu müssen. Dies ist die Funktion der Schaltfläche Anwenden. Die Schaltfläche Anwenden wendet die aktuellen Einstellungen auf allen Eigenschaftenseiten auf das externe Objekt an, anstatt nur die aktuellen Einstellungen der derzeit aktiven Seite anzuwenden.

Standardmäßig ist die Schaltfläche Anwenden immer deaktiviert. Sie müssen Code schreiben, um die Schaltfläche Anwenden zu den entsprechenden Zeitpunkten zu aktivieren, und Sie müssen Code schreiben, um die Auswirkung von Anwenden zu implementieren, wie unten erläutert.

Wenn Sie die Funktion Anwenden nicht für den Benutzer anbieten möchten, ist es nicht erforderlich, die Schaltfläche Anwenden zu entfernen. Sie können es deaktiviert lassen, wie es bei Anwendungen üblich ist, die standardmäßige Eigenschaftenblattunterstützung verwenden, die in zukünftigen Versionen von Windows.

Um eine Seite als geändert zu melden und die Schaltfläche Anwenden zu aktivieren, rufen Sie CPropertyPage::SetModified( TRUE ) auf. Wenn eine der Seiten geändert wird, bleibt die Schaltfläche Übernehmen aktiviert, unabhängig davon, ob die derzeit aktive Seite geändert wurde.

Sie sollten CPropertyPage::SetModified aufrufen, wenn der Benutzer Einstellungen auf der Seite ändert. Eine Möglichkeit, zu erkennen, wann ein Benutzer eine Einstellung auf der Seite ändert, besteht in der Implementierung von Änderungsbenachrichtigungshandlern für jedes der Steuerelemente auf der Eigenschaftenseite, z. B. EN_CHANGEoder BN_CLICKED.

Um die Auswirkung der Schaltfläche Anwenden zu implementieren, muss das Eigenschaftenblatt seinen Besitzer oder ein anderes externes Objekt in der Anwendung anraten, die aktuellen Einstellungen auf den Eigenschaftenseiten anzuwenden. Gleichzeitig sollte das Eigenschaftenblatt die Schaltfläche Anwenden deaktivieren, indem für alle Seiten, die ihre Änderungen auf das externe Objekt angewendet haben, CPropertyPage::SetModified( FALSE ) aufruft.

Ein Beispiel für diesen Prozess finden Sie im allgemeinen MFC-Beispiel PROPDLG.

Siehe auch

Eigenschaftenblätter