Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Net als bij de meeste dialoogvensters is de uitwisseling van gegevens tussen het eigenschappenvenster en de toepassing een van de belangrijkste functies van het eigenschappenvenster. In dit artikel wordt beschreven hoe u deze taak uitvoert.
Gegevens uitwisselen met een eigenschappenvenster is eigenlijk een kwestie van gegevens uitwisselen met de afzonderlijke eigenschapspagina's van het eigenschappenvenster. De procedure voor het uitwisselen van gegevens met een eigenschappenpagina is hetzelfde als voor het uitwisselen van gegevens met een dialoogvenster, omdat een CPropertyPage-object slechts een gespecialiseerd CDialog-object is. De procedure maakt gebruik van de DDX-faciliteit (Dialog Data Exchange) van het framework, waarmee gegevens worden uitgewisseld tussen besturingselementen in een dialoogvenster en lidvariabelen van het dialoogvensterobject.
Het belangrijkste verschil tussen het uitwisselen van gegevens met een eigenschappenvenster en met een normaal dialoogvenster is dat het eigenschappenvenster meerdere pagina's heeft, dus u moet gegevens uitwisselen met alle pagina's in het eigenschappenvenster. Zie Dialoogvenster gegevensuitwisseling en validatie voor meer informatie over DDX.
In het volgende voorbeeld ziet u hoe gegevens worden uitgewisseld tussen een weergave en twee pagina's van een eigenschappenvenster:
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);
}
}