交換資料
如同大多數對話方塊,在屬性工作表和應用程式之間的資料交換,是屬性工作表的其中一個最重要的函式。 本文說明如何完成這項工作。
使用屬性工作表交換資料實際上,是與屬性工作表之個別屬性頁交換資料的問題。 與屬性頁交換資料的程式與與對話方塊交換資料的程式相同,因為 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);
}
}