Classe CDataExchange
Supporta le routine DDX (Dialog Data Exchange) e DDV (Dialog Data Validation) usate da Microsoft Foundation Classes.
Sintassi
class CDataExchange
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CDataExchange::CDataExchange | Costruisce un oggetto CDataExchange . |
Metodi pubblici
Nome | Descrizione |
---|---|
CDataExchange::Fail | Chiamato quando la convalida ha esito negativo. Reimposta lo stato attivo sul controllo precedente e genera un'eccezione. |
CDataExchange::P repareCtrl | Prepara il controllo specificato per lo scambio di dati o la convalida. Usare per i controlli non modificati. |
CDataExchange::P repareEditCtrl | Prepara il controllo di modifica specificato per lo scambio di dati o la convalida. |
CDataExchange::P repareOleCtrl | Prepara il controllo OLE specificato per lo scambio di dati o la convalida. Usare per i controlli non modificati. |
Membri dati pubblici
Nome | Descrizione |
---|---|
CDataExchange::m_bSaveAndValidate | Contrassegno per la direzione di DDX e DDV. |
CDataExchange::m_pDlgWnd | Finestra di dialogo o finestra in cui viene eseguito lo scambio di dati. |
Osservazioni:
CDataExchange
non dispone di una classe di base.
Utilizzare questa classe se si scrivono routine di scambio di dati per tipi o controlli personalizzati o se si scrivono routine di convalida dei dati personalizzate. Per altre informazioni sulla scrittura di routine DDX e DDV, vedere La nota tecnica 26. Per una panoramica di DDX e DDV, vedere Finestre di dialogo Scambio dati e convalida e finestre di dialogo.
Un CDataExchange
oggetto fornisce le informazioni di contesto necessarie per l'applicazione di DDX e DDV. Il flag m_bSaveAndValidate è FALSE quando DDX viene usato per riempire i valori iniziali dei controlli della finestra di dialogo dai membri dati. Il flag m_bSaveAndValidate è TRUE quando DDX viene usato per impostare i valori correnti dei controlli finestra di dialogo nei membri dati e quando DDV viene usato per convalidare i valori dei dati. Se la convalida DDV ha esito negativo, nella procedura DDV verrà visualizzata una finestra di messaggio che spiega l'errore di input. La procedura DDV chiamerà Fail
quindi per reimpostare lo stato attivo sul controllo che causa l'errore e genererà un'eccezione per arrestare il processo di convalida.
Gerarchia di ereditarietà
CDataExchange
Requisiti
Intestazione: afxwin.h
CDataExchange::CDataExchange
Chiamare questa funzione membro per costruire un CDataExchange
oggetto .
CDataExchange(
CWnd* pDlgWnd,
BOOL bSaveAndValidate);
Parametri
pDlgWnd
Puntatore alla finestra padre che contiene il controllo . In genere si tratta di un oggetto derivato da CDialog.
bSaveAndValidate
Se TRUE, questo oggetto convalida i dati, quindi scrive i dati dai controlli ai membri. Se FALSE, questo oggetto sposta i dati dai membri ai controlli.
Osservazioni:
Costruisci manualmente un CDataExchange
oggetto per archiviare informazioni aggiuntive nell'oggetto scambio di dati da passare alla funzione membro CWnd::D oDataExchange della finestra.
Esempio
CYourDataExchange dx(this, FALSE);
try
{
DoDataExchange(&dx);
}
catch (CUserException *pe)
{
// some part of the exchange went wrong
// but the user has already been notified
pe->Delete();
}
CDataExchange::Fail
Il framework chiama questa funzione membro quando un'operazione DDV (Dialog Data Validation) non riesce.
void Fail();
Osservazioni:
Fail
ripristina lo stato attivo e la selezione al controllo la cui convalida non è riuscita (se è presente un controllo da ripristinare). Fail
genera quindi un'eccezione di tipo CUserException per arrestare il processo di convalida. L'eccezione fa sì che venga visualizzata una finestra di messaggio che spiega l'errore. Dopo che la convalida DDV ha esito negativo, l'utente può immettere nuovamente i dati nel controllo che causa l'errore.
Gli implementatori di routine DDV personalizzate possono chiamare Fail
dalle routine quando una convalida non riesce.
Per altre informazioni sulla scrittura di routine DDX e DDV, vedere La nota tecnica 26. Per una panoramica di DDX e DDV, vedere Argomenti relativi a Scambio dati e convalida e finestra di dialogo della finestra di dialogo.
CDataExchange::m_bSaveAndValidate
Questo flag indica la direzione di un'operazione DDX (Dialog Data Exchange).
BOOL m_bSaveAndValidate;
Osservazioni:
Il flag è diverso da zero se l'oggetto CDataExchange
viene usato per spostare i dati dai controlli della finestra di dialogo ai membri dati della classe di dialogo dopo che l'utente modifica i controlli. Il flag è zero se l'oggetto viene usato per inizializzare i controlli della finestra di dialogo dai membri dati della classe dialog.
Il flag è anche diverso da zero durante la convalida dei dati della finestra di dialogo.The flag is also nonzero during dialog data validation (DDV).
Per altre informazioni sulla scrittura di routine DDX e DDV, vedere La nota tecnica 26. Per una panoramica di DDX e DDV, vedere Argomenti relativi a Scambio dati e convalida e finestra di dialogo della finestra di dialogo.
CDataExchange::m_pDlgWnd
Contiene un puntatore all'oggetto CWnd per il quale viene eseguito lo scambio di dati della finestra di dialogo (DDX) o la convalida (DDV).
CWnd* m_pDlgWnd;
Osservazioni:
Questo oggetto è in genere un oggetto CDialog . Gli implementatori di routine DDX o DDV personalizzate possono usare questo puntatore per ottenere l'accesso alla finestra di dialogo contenente i controlli su cui operano.
Per altre informazioni sulla scrittura di routine DDX e DDV, vedere La nota tecnica 26. Per una panoramica di DDX e DDV, vedere Argomenti relativi a Scambio dati e convalida e finestra di dialogo della finestra di dialogo.
CDataExchange::P repareCtrl
Il framework chiama questa funzione membro per preparare il controllo specificato per lo scambio di dati di dialogo (DDX) e la convalida (DDV).
HWND PrepareCtrl(int nIDC);
Parametri
nIDC
ID del controllo da preparare per DDX o DDV.
Valore restituito
HWND del controllo preparato per DDX o DDV.
Osservazioni:
Utilizzare PrepareEditCtrl per i controlli di modifica. Utilizzare questa funzione membro per tutti gli altri controlli.
La preparazione consiste nell'archiviare L'HWND del controllo nella CDataExchange
classe . Il framework usa questo handle per ripristinare lo stato attivo sul controllo attivo in precedenza in caso di errore DDX o DDV.
Gli implementatori di routine DDX o DDV personalizzate devono chiamare PrepareCtrl
tutti i controlli non di modifica per i quali scambiano dati tramite DDX o convalidando i dati tramite DDV.
Per altre informazioni sulla scrittura di routine DDX e DDV, vedere La nota tecnica 26. Per una panoramica di DDX e DDV, vedere Argomenti relativi a Scambio dati e convalida e finestra di dialogo della finestra di dialogo.
CDataExchange::P repareEditCtrl
Il framework chiama questa funzione membro per preparare il controllo di modifica specificato per lo scambio di dati di dialogo (DDX) e la convalida (DDV).
HWND PrepareEditCtrl(int nIDC);
Parametri
nIDC
ID del controllo di modifica da preparare per DDX o DDV.
Valore restituito
HWND del controllo di modifica preparato per DDX o DDV.
Osservazioni:
Usare invece PrepareCtrl per tutti i controlli non di modifica.
La preparazione è costituita da due cose. In primo luogo, PrepareEditCtrl
archivia il controllo HWND nella CDataExchange
classe . Il framework usa questo handle per ripristinare lo stato attivo sul controllo attivo in precedenza in caso di errore DDX o DDV. In secondo luogo, PrepareEditCtrl
imposta un flag nella CDataExchange
classe per indicare che il controllo i cui dati vengono scambiati o convalidati è un controllo di modifica.
Gli implementatori di routine DDX o DDV personalizzate devono chiamare PrepareEditCtrl
tutti i controlli di modifica per i quali scambiano dati tramite DDX o convalidando i dati tramite DDV.
Per altre informazioni sulla scrittura di routine DDX e DDV, vedere La nota tecnica 26. Per una panoramica di DDX e DDV, vedere Argomenti relativi a Scambio dati e convalida e finestra di dialogo della finestra di dialogo.
CDataExchange::P repareOleCtrl
Il framework chiama questa funzione membro per preparare il controllo OLE specificato per lo scambio di dati di dialogo (DDX) e la convalida (DDV).
COleControlSite* PrepareOleCtrl(int nIDC);
Parametri
nIDC
ID del controllo OLE da preparare per DDX o DDV.
Valore restituito
Puntatore al sito di controllo OLE.
Osservazioni:
Usare PrepareEditCtrl per modificare i controlli o PrepareCtrl per tutti gli altri controlli non OLE.
Gli implementatori di routine DDX o DDV personalizzate devono chiamare PrepareOleCtrl
tutti i controlli OLE per i quali scambiano dati tramite DDX o convalidando i dati tramite DDV.
Per altre informazioni sulla scrittura di routine DDX e DDV, vedere La nota tecnica 26. Per una panoramica di DDX e DDV, vedere Argomenti relativi a Scambio dati e convalida e finestra di dialogo della finestra di dialogo.
Vedi anche
MFC Sample VIEWEX
Grafico della gerarchia
CWnd::D oDataExchange
CWnd::UpdateData