Trocando dados
Como com a maioria das caixas de diálogo, a troca de dados entre a folha de propriedades e o aplicativo é uma das funções mais importantes de folha de propriedades. Este artigo descreve como realizar esta tarefa.
Trocar dados com uma folha de propriedade são realmente uma questão de troca de dados com as páginas de propriedades individuais da folha de propriedades. O procedimento para trocar dados com uma página de propriedades é o mesmo de troca de dados com uma caixa de diálogo, desde que um objeto de CPropertyPage é apenas um objeto especializado de CDialog . O procedimento beneficia-se da facilidade de troca de dados da caixa de diálogo estrutura (DDX), que troca dados entre controles em uma caixa de diálogo e variáveis de membro da caixa de diálogo objeto.
A diferença importante entre troca de dados com uma folha de propriedade e com uma caixa de diálogo normal é que a folha de propriedades tiver várias páginas, você deve trocar dados com todas as páginas de folha de propriedades. Para obter mais informações sobre como DDX, consulte Caixa de diálogo troca de dados e validação.
O exemplo a seguir ilustra a troca de dados entre uma exibição e duas páginas de uma folha de propriedades:
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);
}
}