데이터 교환
대부분의 대화 상자와 마찬가지로 속성 시트와 애플리케이션 간의 데이터 교환은 속성 시트의 가장 중요한 함수 중 하나입니다. 이 문서에서는 이 작업을 수행하는 방법을 설명합니다.
속성 시트와 데이터를 교환하는 것은 실제로 속성 시트의 개별 속성 페이지와 데이터를 교환하는 문제입니다. 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);
}
}