Condividi tramite


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 specifico di CDialog. La routine utilizza le funzionalità di scambio di dati della finestra di dialogo del framework (DDX), che scambio dei dati tra i controlli in una finestra di dialogo e delle variabili membro della finestra di dialogo oggetto.

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

Nell'esempio seguente viene illustrato lo scambio di dati tra view 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)