Udostępnij za pośrednictwem


Wymiana danych

Podobnie jak w przypadku większości okien dialogowych wymiana danych między arkuszem właściwości a aplikacją jest jedną z najważniejszych funkcji arkusza właściwości. W tym artykule opisano sposób wykonywania tego zadania.

Wymiana danych z arkuszem właściwości jest w rzeczywistości kwestią wymiany danych z poszczególnymi stronami właściwości arkusza właściwości. Procedura wymiany danych ze stroną właściwości jest taka sama jak w przypadku wymiany danych z oknem dialogowym, ponieważ obiekt CPropertyPage jest tylko wyspecjalizowanym obiektem CDialog . Procedura korzysta z funkcji wymiany danych dialogowych (DDX) platformy, która wymienia dane między kontrolkami w oknie dialogowym i zmiennymi składowymi obiektu okna dialogowego.

Ważną różnicą między wymianą danych z arkuszem właściwości a normalnym oknom dialogowym jest to, że arkusz właściwości ma wiele stron, więc musisz wymieniać dane ze wszystkimi stronami w arkuszu właściwości. Aby uzyskać więcej informacji na temat DDX, zobacz Dialog Data Exchange and Validation (Wymiana danych w oknie dialogowym i walidacja).

Poniższy przykład ilustruje wymianę danych między widokiem a dwiema stronami arkusza właściwości:

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);
   }
}

Zobacz też

Arkusze właściwości