Partager via


Échange données

Comme avec la plupart des boîtes de dialogue, l'échange de données entre la feuille de propriétés et l'application est l'une des fonctions les plus importantes de la feuille de propriétés.Cet article explique comment accomplir cette tâche.

Échanger des données à une feuille de propriétés est une question d'échanger des données avec les différentes pages de propriétés de la feuille de propriétés.La procédure pour échanger des données avec une page de propriétés est la même que pour échanger des données avec une boîte de dialogue, car un objet de CPropertyPage est simplement un objet spécialisée de CDialog .La procédure tire parti des fonctionnalités de l'échange de données de boîtes de dialogue de l'infrastructure (DDX), qui échange des données entre des contrôles dans une boîte de dialogue et les variables membres de l'objet de boîte de dialogue.

La différence importante entre échanger des données à une feuille de propriétés et avec une boîte de dialogue normale est que la feuille de propriétés dispose de plusieurs pages, vous devez donc des données avec toutes les pages dans la feuille de propriétés.Pour plus d'informations sur DDX, consultez l' échange de données de boîtes de dialogue et validation.

L'exemple suivant illustre l'échange de données entre une vue et deux pages d'une feuille de propriétés suivants :

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);
   }
}

Voir aussi

Concepts

Feuilles de propriétés (MFC)