Verwenden von Eigenschaftenseiten in einer Anwendung
Führen Sie die folgenden Schritte aus, um ein Eigenschaftenblatt in Ihrer Anwendung zu verwenden:
Erstellen Sie eine Dialogvorlagenressource für jede Eigenschaftenseite. Denken Sie daran, dass der Benutzer möglicherweise von einer Seite zu einer anderen wechselt, sodass jede Seite so konsistent wie möglich dargestellt wird.
Die Dialogfeldvorlagen für alle Seiten müssen nicht die gleiche Größe aufweisen. Das Framework verwendet die Größe der größten Seite, um zu bestimmen, wie viel Platz im Eigenschaftenblatt für die Eigenschaftenseiten zugeordnet werden soll.
Wenn Sie die Dialogvorlagenressource für eine Eigenschaftenseite erstellen, müssen Sie die folgenden Formatvorlagen im Eigenschaftenblatt "Dialogeigenschaften" angeben:
Legen Sie das Bearbeitungsfeld "Beschriftung " auf der Seite "Allgemein " auf den Text fest, den Sie auf der Registerkarte für diese Seite anzeigen möchten.
Legen Sie das Listenfeld "Formatvorlage " auf der Seite "Formatvorlagen " auf "Untergeordnetes Element" fest.
Legen Sie das Listenfeld "Rahmen " auf der Seite "Formatvorlagen " auf "Dünn" fest.
Stellen Sie sicher, dass das Kontrollkästchen "Titelleiste " auf der Seite "Formatvorlagen " aktiviert ist.
Stellen Sie sicher, dass das Kontrollkästchen "Deaktiviert " auf der Seite "Weitere Formatvorlagen " aktiviert ist.
Erstellen Sie eine von CPropertyPage abgeleitete Klasse, die jeder Dialogfeldvorlage für Eigenschaftenseiten entspricht. Siehe Hinzufügen einer Klasse. Wählen Sie
CPropertyPage
als Basisklasse aus.Erstellen Sie Membervariablen, um die Werte für diese Eigenschaftenseite zu enthalten. Der Prozess zum Hinzufügen von Membervariablen zu einer Eigenschaftenseite entspricht genau dem Hinzufügen von Membervariablen zu einem Dialogfeld, da eine Eigenschaftenseite ein spezielles Dialogfeld ist. Weitere Informationen finden Sie unter Definieren von Membervariablen für Dialogsteuerelemente.
Erstellen Sie ein CPropertySheet-Objekt in Ihrem Quellcode. In der Regel erstellen Sie das
CPropertySheet
Objekt im Handler für den Befehl, der das Eigenschaftenblatt anzeigt. Dieses Objekt stellt das gesamte Eigenschaftenblatt dar. Wenn Sie ein modales Eigenschaftenblatt mit der DoModal-Funktion erstellen, stellt das Framework standardmäßig drei Befehlsschaltflächen zur Seite: OK, Abbrechen und Anwenden. Das Framework erstellt keine Befehlsschaltflächen für moduslose Eigenschaftenblätter, die mit der Create-Funktion erstellt wurden. Sie müssen keine Klasse ableitenCPropertySheet
, es sei denn, Sie möchten andere Steuerelemente (z. B. ein Vorschaufenster) hinzufügen oder ein modusloses Eigenschaftenblatt anzeigen. Dieser Schritt ist für moduslose Eigenschaftenblätter erforderlich, da sie keine Standardsteuerelemente enthalten, die zum Schließen des Eigenschaftenblatts verwendet werden können.Führen Sie für jede Seite, die dem Eigenschaftenblatt hinzugefügt werden soll, die folgenden Schritte aus:
Erstellen Sie ein Objekt für jede
CPropertyPage
abgeleitete Klasse, die Sie zuvor in diesem Prozess erstellt haben.Rufen Sie CPropertySheet::AddPage für jede Seite auf.
In der Regel erstellt das Objekt, das die
CPropertySheet
Objekte in diesem Schritt erstelltCPropertyPage
. Wenn Sie jedoch eineCPropertySheet
abgeleitete Klasse implementieren, können Sie dieCPropertyPage
Objekte in dasCPropertySheet
Objekt einbetten und für jede Seite aus demCPropertySheet
vom -abgeleiteten Klassenkonstruktor aufrufenAddPage
.AddPage
fügt dasCPropertyPage
Objekt der Seitenliste des Eigenschaftenblatts hinzu, erstellt aber nicht tatsächlich das Fenster für diese Seite. Daher ist es nicht erforderlich, bis die Erstellung des Eigenschaftenblattfensters aufgerufenAddPage
werden soll. Sie können den Konstruktor des Eigenschaftenblatts aufrufenAddPage
.Wenn ein Eigenschaftenblatt standardmäßig mehr Registerkarten enthält, als in eine einzelne Zeile des Eigenschaftenblatts passen, werden die Registerkarten in mehreren Zeilen gestapelt. Rufen Sie zum Deaktivieren der Stapelung CPropertySheet::EnableStackedTabs auf, wobei der Parameter auf FALSE festgelegt ist. Sie müssen aufrufen
EnableStackedTabs
, wenn Sie das Eigenschaftenblatt erstellen.Rufen Sie CPropertySheet::D oModal oder Create auf, um das Eigenschaftenblatt anzuzeigen. Aufrufen
DoModal
zum Erstellen eines Eigenschaftenblatts als modales Dialogfeld. Aufrufen von "Erstellen ", um das Eigenschaftenblatt als dialogfeld ohne Modus zu erstellen.Austauschen von Daten zwischen Eigenschaftenseiten und dem Besitzer des Eigenschaftenblatts. Dies wird im Artikel Austausch von Daten erläutert.
Ein Beispiel für die Verwendung von Eigenschaftenblättern finden Sie unter dem allgemeinen MFC-Beispiel PROPDLG.