交換資料
如同大多數對話方塊,在屬性工作表和應用程式之間的交換資料是其中一個屬性工作表的最重要的函式。 本文說明如何完成這項工作。
藉由屬性工作表交換資料實際上是交換具有屬性工作表之個別屬性頁的資料的問題。 因為 CPropertyPage 物件是特殊的 CDialog 物件,使用屬性頁交換資料的方法相同於對話方塊的交換。 程序使用架構的對話資料交換 (Dialog Data Exchange,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);
}
}