交換資料
與大部份的對話方塊一樣的屬性工作表和應用程式之間的資料交換是其中一個最重要的函式的屬性工作表。 本文將告訴您如何完成這項工作。
與屬性工作表交換資料是實際上與屬性工作表的個別的屬性頁交換資料。 與屬性頁交換資料的程序是相同與交換資料的對話方塊中,因為 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);
}
}