Wymiana danych
Jak w przypadku większości okien dialogowych, wymianę danych między arkusz właściwości i aplikacji jest jednym z najważniejszych funkcji arkusza właściwości.W tym artykule opisano sposób wykonania tego zadania.
Wymiana danych z arkusza właściwości jest faktycznie przedmiot wymiany danych z poszczególnych właściwości strony arkusza właściwości.Procedura wymiany danych ze strony właściwości jest taka sama, jak dla wymiany danych z okno dialogowe, ponieważ CPropertyPage obiekt jest właśnie wyspecjalizowanych CDialog obiektu.Procedura wykorzystuje ramy okno dialogowe danych programu exchange (DDX) urządzenia, które wymianę danych między formantami w zmiennych okno dialogowe pola i elementu członkowskiego obiektu okno dialogowe.
Ważna różnica między wymianę danych z arkusza właściwości i normalnym okna dialogowego jest arkusz właściwości ma wiele stron, więc muszą wymieniać dane z wszystkich stron w arkuszu właściwości.Aby uzyskać więcej informacji o DDX, zobacz okno dialogowe wymiany danych i sprawdzania poprawności.
Poniższy przykład ilustruje wymianie danych między widokiem i dwie strony 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);
}
}