Freigeben über


Datenaustausch

Wie bei den meisten Dialogfeldern, ist der Austausch von Daten zwischen dem Eigenschaftenblatt und der Anwendung eine der wichtigsten Features des Eigenschaftenblatts. Dieser Artikel wird beschrieben, wie diese Aufgabe erfüllt.

Datenaustausch zwischen dem mit einem Eigenschaftenblatt handelt sich lediglich für den Austausch von Daten mit einzelnen Eigenschaftenseiten des Eigenschaftenblatts. Die Prozedur für dem Austausch von Daten mit einer Eigenschaftenseite ist identisch mit der Aktivierungsreihenfolge für dem Austausch von Daten mit einem Dialogfeld, als CPropertyPage-Objekt gegenwärtig ein spezialisiertes CDialog-Klasse-Objekt ist. Die Prozedur genutzt die Funktion des Dialogdatenaustauschs des Frameworks (DDX), die dem Austausch von Daten zwischen Steuerelementen in einem Dialogfeld und Membervariablen des Dialogfelds ein.

Der wichtige Unterschied zwischen dem Austausch von Daten mit einem Eigenschaftenblatt und mit einem normalen Dialogfeld ist, dass das Eigenschaftenblatt mehrere Seiten verfügt, müssen Sie Daten mit allen Seiten im Eigenschaftenblatt. Weitere Informationen über DDX, finden Sie unter Dialogdatenaustausch und Validierung.

Das folgende Beispiel veranschaulicht dem Austausch von Daten zwischen einer Ansicht und zwei Seiten eines Eigenschaftenblatts:

void CMyView::DoModalPropertySheet()
{
   CPropertySheet propsheet;
   CMyFirstPage pageFirst; // derived from CPropertyPage
   CMySecondPage pageSecond; // derived from CPropertyPage 

   // Move member data from the view (or from the currently 
   // selected object in the view, for example).
   pageFirst.m_nMember1 = m_nMember1; 
   pageFirst.m_nMember2 = m_nMember2;

   pageSecond.m_strMember3 = m_strMember3;
   pageSecond.m_strMember4 = m_strMember4;

   propsheet.AddPage(&pageFirst);
   propsheet.AddPage(&pageSecond);

   if (propsheet.DoModal() == IDOK)
   {
      m_nMember1 = pageFirst.m_nMember1;
      m_nMember2 = pageFirst.m_nMember2;
      m_strMember3 = pageSecond.m_strMember3;
      m_strMember4 = pageSecond.m_strMember4;  
      GetDocument()->SetModifiedFlag();
      GetDocument()->UpdateAllViews(NULL);
   }
}

Siehe auch

Konzepte

Eigenschaftenblätter (MFC)