交换数据

与大多数对话框中,数据替换在属性表和应用程序之间的是一个属性表的最重要的功能。本文介绍如何完成此任务。

使用属性表交换数据实际上是交换数据问题与属性表的各个属性页。,因为 CPropertyPage 对象是专用的 CDialog 对象,交换数据的方法与属性页与使用对话框交换数据的。该程序利用框架的对话框数据交换 (ddx) 计算机,在控件在对话框和对话框对象的成员变量的之间交换数据。

交换数据之间的重要差异在于将属性表与普通对话框是属性表有多个页,因此,您必须使用所有页交换数据。属性表。有关 DDX 的更多信息,请参见 数据交换的对话框和验证

下面的示例演示视图和属性表的两个页面的之间交换数据:

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

请参见

概念

属性表(MFC)