Behandeln der übernehmens-Schaltfläche
Eigenschaftenblätter verfügen über eine Funktion, die keine Standarddialogfelder zur Verfügung: Sie ermöglichen es dem Benutzer, um Änderungen anzuwenden, die sie vorgenommen haben, bevor das Eigenschaftenblatt schlossen.Dies geschieht mit der Schaltfläche Übernehmen.In diesem Artikel werden Möglichkeiten, die Sie verwenden können, um diese Funktion ordnungsgemäß zu implementieren.
Modale Dialogfelder gelten normalerweise die Einstellungen an ein externes Objekt, wenn der Benutzer auf OK klickt, um das Dialogfeld zu schließen.Dies gilt auch für ein Eigenschaftenblatt aus: Wenn der Benutzer auf OK klickt, werden die neuen Einstellungen im Eigenschaftenblatt in Kraft.
Möglicherweise möchten Sie dem Benutzer zu ermöglichen, Einstellungen speichern, ohne das Dialogfeld Eigenschaftenblatt zu schließen.Dies ist die Funktion der Schaltfläche Übernehmen.Die Schaltfläche Übernehmen wendet die aktuellen Einstellungen auf den Eigenschaftenseiten in allen externen Objekt, im Gegensatz zum Anwenden nur die aktuellen Einstellungen der derzeit aktiver Seite.
Standardmäßig wird die Schaltfläche Übernehmen immer deaktiviert.Sie müssen Code schreiben, um die Schaltfläche Übernehmen in den entsprechenden Zeiten zu aktivieren, und Sie müssen Code schreiben, um die Auswirkungen von Apply zu implementieren, wie im Folgenden erläutert.
Falls Sie die Funktionalität Übernehmen der Benutzer bieten möchten, ist es nicht erforderlich, die Schaltfläche Übernehmen zu entfernen.Sie können es deaktiviert haben, wie häufig Anwendungen, die die standardmäßige Unterstützung eigenschaftenblatt verwenden, die in zukünftigen Versionen von Windows verfügbar ist.
So melden eine Seite als geändert markiert, und die Schaltfläche Übernehmen aktivieren, rufen Sie CPropertyPage::SetModified( TRUE ).Wenn eine der Seiten ändern, melden die Schaltfläche Übernehmen aktiviert bleibt, unabhängig davon, ob die aktuell aktive Seite geändert wurde.
Sie sollten CPropertyPage::SetModified aufrufen, sobald der Benutzer die Einstellungen auf der Seite ändert.Eine Möglichkeit, zu erkennen, wann ein Benutzer eine Einstellung auf der Seite ändert, ist für Verzögerung für jede der Steuerelemente auf der Eigenschaftenseite, wie EN_CHANGE oder BN_CLICKED zu implementieren.
Um die Auswirkungen der Schaltfläche Übernehmen zu implementieren, muss das Eigenschaftenblatt seinem Besitzer oder ein anderes externes Objekt in der Anwendung erkennen, die aktuellen Einstellungen auf den Eigenschaftenseiten zu übernehmen.Gleichzeitig muss das Eigenschaftenblatt die Schaltfläche Übernehmen deaktivieren, indem CPropertyPage::SetModified( FALSE ) für alle Seiten aufruft, die ihre Änderungen an externen Objekt angewendet haben.
Ein Beispiel für diesen Prozess finden Sie das allgemeine Beispiel PROPDLG MFC.