Lo scambio di dati

Come nella maggior parte delle finestre di dialogo, lo scambio di dati tra la finestra delle proprietà e l'applicazione è una delle funzioni principali della finestra delle proprietà.In questo articolo viene descritto come eseguire questa attività.

Dati con una finestra delle proprietà sono effettivamente un aspetto di trasferimento di dati con le singole pagine delle proprietà della finestra delle proprietà.La procedura per dati con una pagina delle proprietà corrisponde a quella di dati con una finestra di dialogo, poiché un oggetto di CPropertyPage è semplicemente un oggetto specializzato di CDialog .La routine sfrutta la funzionalità di scambio di dati della finestra di dialogo del framework (DDX), i dati di scambio tra i controlli in una finestra di dialogo e le variabili membro della finestra di dialogo oggetto.

La differenza fondamentale tra dati con una finestra delle proprietà e a una finestra di dialogo normale rappresenta la finestra delle proprietà dispone di più pagine, pertanto è necessario °e scambiano dati con tutte le pagine nella finestra delle proprietà.Per ulteriori informazioni su DDX, vedere Scambio di dati e convalida della finestra di dialogo.

Nell'esempio seguente vengono illustrati i lo scambio di dati tra una visualizzazione e due pagine di una finestra delle proprietà:

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

Vedere anche

Concetti

Finestre delle proprietà (MFC)