Compartilhar via


Troca de dados

Assim como acontece 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 da folha de propriedades. Este artigo descreve como realizar essa tarefa.

A troca de dados com uma folha de propriedades é, na verdade, 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 propriedade é o mesmo que para trocar dados com uma caixa de diálogo, já que um objeto CPropertyPage é apenas um objeto CDialog especializado. O procedimento aproveita a instalação de DDX (troca de dados de caixa de diálogo) da estrutura, que troca dados entre controles em uma caixa de diálogo e variáveis de membro do objeto da caixa de diálogo.

A diferença importante entre a troca de dados com uma folha de propriedades e com uma caixa de diálogo normal é que a folha de propriedades tem várias páginas, portanto, você deve trocar dados com todas as páginas na folha de propriedades. Para obter mais informações sobre DDX, consulte a 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);
   }
}

Consulte também

folhas de propriedades