Bertukar Data
Seperti kebanyakan kotak dialog, pertukaran data antara lembar properti dan aplikasi adalah salah satu fungsi terpenting dari lembar properti. Artikel ini menjelaskan cara menyelesaikan tugas ini.
Bertukar data dengan lembar properti sebenarnya adalah masalah pertukaran data dengan halaman properti individual lembar properti. Prosedur untuk bertukar data dengan halaman properti sama dengan untuk bertukar data dengan kotak dialog, karena objek CPropertyPage hanyalah objek CDialog khusus. Prosedur ini memanfaatkan fasilitas pertukaran data dialog (DDX) kerangka kerja, yang bertukar data antara kontrol dalam kotak dialog dan variabel anggota objek kotak dialog.
Perbedaan penting antara bertukar data dengan lembar properti dan dengan kotak dialog normal adalah bahwa lembar properti memiliki beberapa halaman, jadi Anda harus bertukar data dengan semua halaman di lembar properti. Untuk informasi selengkapnya tentang DDX, lihat Pertukaran dan Validasi Data Dialog.
Contoh berikut mengilustrasikan pertukaran data antara tampilan dan dua halaman lembar properti:
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);
}
}