Condividi tramite


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