Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eigenschaftenblätter verfügen über eine Funktion, die Standarddialogfelder nicht haben: Sie ermöglichen es dem Benutzer, vor dem Schließen des Eigenschaftenblatts vorgenommene Änderungen anzuwenden. Dazu wird die Schaltfläche "Übernehmen" verwendet. In diesem Artikel werden Methoden erläutert, mit deren Hilfe Sie dieses Feature ordnungsgemäß implementieren können.
Modale Dialogfelder wenden in der Regel die Einstellungen auf ein externes Objekt an, wenn der Benutzer auf "OK" klickt, um das Dialogfeld zu schließen. Das gleiche 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 Eigenschaftenblatt-Dialogfeld schließen zu müssen. Dies ist die Funktion der Schaltfläche "Übernehmen". Die Schaltfläche "Übernehmen" wendet die aktuellen Einstellungen auf allen Eigenschaftsseiten auf das externe Objekt an, anstatt nur die Einstellungen der derzeit aktiven Seite zu übernehmen.
Standardmäßig ist die Schaltfläche "Übernehmen" immer deaktiviert. Sie müssen Code schreiben, um die Schaltfläche "Anwenden" zu den entsprechenden Zeiten zu aktivieren, und Sie müssen Code schreiben, um die Auswirkung von Apply zu implementieren, wie unten erläutert.
Wenn Sie dem Benutzer die Funktion "Anwenden" nicht anbieten möchten, ist es nicht erforderlich, die Schaltfläche "Anwenden" zu entfernen. Sie können sie deaktiviert lassen, wie es bei Anwendungen üblich ist, die standardmäßige Eigenschaftenblattunterstützung verwenden, die in zukünftigen Versionen von Windows verfügbar ist.
Rufen Sie CPropertyPage::SetModified( TRUE )
auf, um zu melden, dass eine Seite geändert wurde und um die Schaltfläche "Übernehmen" zu aktivieren. Wenn auf einer der Seiten gemeldet wird, dass sie geändert wurde, bleibt die Schaltfläche "Übernehmen" aktiviert, unabhängig davon, ob die aktuell 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 darin, Änderungsbenachrichtigungshandler für jedes Steuerelement auf der Eigenschaftenseite zu implementieren, z. B. EN_CHANGE oder BN_CLICKED.
Um die Wirkung der Schaltfläche „Übernehmen“ zu implementieren, muss das Eigenschaftenblatt seinem Besitzer oder einem anderen externen Objekt in der Anwendung mitteilen, dass die aktuellen Einstellungen auf den Eigenschaftenseiten übernommen werden sollen. Gleichzeitig sollte das Eigenschaftenblatt die Schaltfläche "Übernehmen" deaktivieren, indem CPropertyPage::SetModified( FALSE )
für alle Seiten aufgerufen wird, die ihre Änderungen auf das externe Objekt anwenden.
Ein Beispiel für diesen Prozess finden Sie im MFC General Sample PROPDLG.