Výměna dat
Stejně jako u většiny dialogových oken je výměna dat mezi seznamem vlastností a aplikací jednou z nejdůležitějších funkcí seznamu vlastností. Tento článek popisuje, jak tuto úlohu provést.
Výměna dat pomocí seznamu vlastností je ve skutečnosti otázkou výměny dat s jednotlivými stránkami vlastností seznamu vlastností. Postup výměny dat se stránkou vlastností je stejný jako při výměně dat pomocí dialogového okna, protože CPropertyPage objekt je pouze specializovaný objekt CDialog . Tento postup využívá možnost výměny dat dialogového okna rozhraní (DDX), která vyměňuje data mezi ovládacími prvky v dialogovém okně a proměnnými členů objektu dialogového okna.
Důležitým rozdílem mezi výměnou dat se seznamem vlastností a normálním dialogovým oknem je, že seznam vlastností má více stránek, takže je nutné vyměňovat data se všemi stránkami v seznamu vlastností. Další informace o DDX naleznete v tématu Výměna a ověřování dat dialogového okna.
Následující příklad znázorňuje výměnu dat mezi zobrazením a dvěma stránkami seznamu vlastností:
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);
}
}