Aracılığıyla paylaş


Veri Alışverişi

Uyarı

Microsoft Foundation Sınıfları (MFC) kitaplığı desteklenmeye devam ediyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.

Çoğu iletişim kutusunda olduğu gibi, özellik sayfası ile uygulama arasında veri alışverişi, özellik sayfasının en önemli işlevlerinden biridir. Bu makalede bu görevin nasıl tamamlandığı açıklanmaktadır.

Özellik sayfasıyla veri alışverişi, aslında özellik sayfasının tek tek özellik sayfalarıyla veri alışverişiyle ilgili bir konudur. Bir CPropertyPage nesnesi yalnızca özel bir CDialog nesnesi olduğundan, bir özellik sayfasıyla veri alışverişi yordamı, iletişim kutusuyla veri alışverişi ile aynıdır. Yordam, bir iletişim kutusundaki denetimlerle iletişim kutusu nesnesinin üye değişkenleri arasında veri alışverişi yapan çerçevenin iletişim kutusu veri değişimi (DDX) özelliğinden yararlanır.

Bir özellik sayfasıyla ve normal bir iletişim kutusuyla veri alışverişi arasındaki önemli fark, özellik sayfasının birden çok sayfası olmasıdır, bu nedenle özellik sayfasındaki tüm sayfalarla veri alışverişinde bulunmanız gerekir. DDX hakkında daha fazla bilgi için bkz. İletişim Kutusu Veri Değişimi ve Doğrulama.

Aşağıdaki örnekte, bir görünüm ile özellik sayfasının iki sayfası arasında veri alışverişi gösterilmektedir:

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

Ayrıca bakınız

Özellik Sayfaları