Recupero di dati da un oggetto Dialog
Il framework offre un modo semplice per inizializzare i valori dei controlli in una finestra di dialogo e recuperare i valori dai controlli. L'approccio manuale più laborioso consiste nel chiamare funzioni come le SetDlgItemText
funzioni membro e GetDlgItemText
della classe CWnd
, che si applicano alle finestre di controllo. Con queste funzioni, è possibile accedere a ogni controllo singolarmente per impostare o ottenere il relativo valore, chiamando funzioni come SetWindowText
e GetWindowText
. L'approccio del framework automatizza sia l'inizializzazione che il recupero.
Lo scambio di dati della finestra di dialogo (DDX) consente di scambiare i dati tra i controlli nella finestra di dialogo e le variabili membro nell'oggetto finestra di dialogo più facilmente. Questo scambio funziona in entrambi i modi. Per inizializzare i controlli nella finestra di dialogo, è possibile impostare i valori dei membri dati nell'oggetto finestra di dialogo e il framework trasferirà i valori ai controlli prima che venga visualizzata la finestra di dialogo. È quindi possibile aggiornare in qualsiasi momento i membri dati della finestra di dialogo con i dati immessi dall'utente. A questo punto, è possibile usare i dati facendo riferimento alle variabili membro dati.
È anche possibile disporre i valori dei controlli della finestra di dialogo da convalidare automaticamente con la convalida dei dati della finestra di dialogo ( DDV).
DDX e DDV sono illustrati in modo più dettagliato in Scambio dati e convalida dei dialoghi.
Per una finestra di dialogo modale, è possibile recuperare tutti i dati immessi dall'utente quando DoModal
restituisce IDOK, ma prima che l'oggetto finestra di dialogo venga eliminato definitivamente. Per una finestra di dialogo senza modalità, è possibile recuperare i dati dall'oggetto finestra di dialogo in qualsiasi momento chiamando UpdateData
con l'argomento TRUE e quindi accedendo alle variabili membro della classe della finestra di dialogo. Questo argomento è illustrato in modo più dettagliato in Dialog Data Exchange e Convalida.