Partager via


CDataExchange, classe

Prend en charge les routines d’échange de données de boîtes de dialogue (DDX) et de validation de données de boîtes de dialogue (DDV) utilisées par les classes MFC (Microsoft Foundation Class).

Syntaxe

class CDataExchange

Membres

Constructeurs publics

Nom Description
CDataExchange ::CDataExchange Construit un objet CDataExchange.

Méthodes publiques

Nom Description
CDataExchange ::Fail Appelé en cas d’échec de la validation. Réinitialise le focus sur le contrôle précédent et lève une exception.
CDataExchange ::P repareCtrl Prépare le contrôle spécifié pour l’échange de données ou la validation. Utiliser pour les contrôles nonedit.
CDataExchange ::P repareEditCtrl Prépare le contrôle d’édition spécifié pour l’échange de données ou la validation.
CDataExchange ::P repareOleCtrl Prépare le contrôle OLE spécifié pour l’échange de données ou la validation. Utiliser pour les contrôles nonedit.

Membres de données publics

Nom Description
CDataExchange ::m_bSaveAndValidate Indicateur pour la direction de DDX et DDV.
CDataExchange ::m_pDlgWnd Boîte de dialogue ou fenêtre où l’échange de données a lieu.

Notes

CDataExchange n’a pas de classe de base.

Utilisez cette classe si vous écrivez des routines d’échange de données pour des types de données ou des contrôles personnalisés, ou si vous écrivez vos propres routines de validation des données. Pour plus d’informations sur l’écriture de vos propres routines DDX et DDV, consultez la Note technique 26. Pour obtenir une vue d’ensemble de DDX et DDV, consultez Boîtes de dialogue Échange de données et Validation et boîtes de dialogue.

Un CDataExchange objet fournit les informations de contexte nécessaires pour que DDX et DDV se produisent. L’indicateur m_bSaveAndValidate a la valeur FALSE lorsque DDX est utilisé pour remplir les valeurs initiales des contrôles de boîte de dialogue des membres de données. L’indicateur m_bSaveAndValidate a la valeur TRUE lorsque DDX est utilisé pour définir les valeurs actuelles des contrôles de boîte de dialogue en membres de données et lorsque DDV est utilisé pour valider les valeurs de données. Si la validation DDV échoue, la procédure DDV affiche une boîte de message expliquant l’erreur d’entrée. La procédure DDV appelle Fail ensuite pour réinitialiser le focus au contrôle incriminé et lever une exception pour arrêter le processus de validation.

Hiérarchie d'héritage

CDataExchange

Spécifications

En-tête : afxwin.h

CDataExchange ::CDataExchange

Appelez cette fonction membre pour construire un CDataExchange objet.

CDataExchange(
    CWnd* pDlgWnd,
    BOOL bSaveAndValidate);

Paramètres

pDlgWnd
Pointeur vers la fenêtre parente qui contient le contrôle. Il s’agit généralement d’un objet dérivé de CDialog.

bSaveAndValidate
Si la valeur est TRUE, cet objet valide les données, puis écrit les données des contrôles dans les membres. Si la valeur est FALSE, cet objet déplace les données des membres vers des contrôles.

Notes

Créez un objet vous-même pour stocker des CDataExchange informations supplémentaires dans l’objet d’échange de données à transmettre à la fonction membre CWnd ::D oDataExchange de votre fenêtre.

Exemple

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

L’infrastructure appelle cette fonction membre lorsqu’une opération de validation des données de dialogue (DDV) échoue.

void Fail();

Notes

Fail restaure le focus et la sélection sur le contrôle dont la validation a échoué (s’il existe un contrôle à restaurer). Fail lève ensuite une exception de type CUserException pour arrêter le processus de validation. L’exception provoque l’affichage d’une boîte de message expliquant l’erreur. Une fois la validation DDV échoué, l’utilisateur peut reentérer des données dans le contrôle incriminé.

Les implémenteurs de routines DDV personnalisées peuvent appeler Fail à partir de leurs routines lorsqu’une validation échoue.

Pour plus d’informations sur l’écriture de vos propres routines DDX et DDV, consultez la Note technique 26. Pour obtenir une vue d’ensemble de DDX et DDV, consultez les rubriques d’échange de données et de validation et de boîte de dialogue de boîte de dialogue.

CDataExchange ::m_bSaveAndValidate

Cet indicateur indique la direction d’une opération DDX (Dialog Data Exchange).

BOOL m_bSaveAndValidate;

Notes

L’indicateur n’est pas différent de zéro si l’objet CDataExchange est utilisé pour déplacer des données des contrôles de boîte de dialogue vers des membres de données de classe de dialogue après que l’utilisateur a modifié les contrôles. L’indicateur est égal à zéro si l’objet est utilisé pour initialiser les contrôles de boîte de dialogue à partir de membres de données de classe de dialogue.

L’indicateur est également différent de zéro lors de la validation des données de boîte de dialogue (DDV).

Pour plus d’informations sur l’écriture de vos propres routines DDX et DDV, consultez la Note technique 26. Pour obtenir une vue d’ensemble de DDX et DDV, consultez les rubriques d’échange de données et de validation et de boîte de dialogue de boîte de dialogue.

CDataExchange ::m_pDlgWnd

Contient un pointeur vers l’objet CWnd pour lequel l’échange de données de dialogue (DDX) ou la validation (DDV) a lieu.

CWnd* m_pDlgWnd;

Notes

Cet objet est généralement un objet CDialog . Les implémenteurs de routines DDX ou DDV personnalisées peuvent utiliser ce pointeur pour obtenir l’accès à la fenêtre de boîte de dialogue qui contient les contrôles sur utilisant.

Pour plus d’informations sur l’écriture de vos propres routines DDX et DDV, consultez la Note technique 26. Pour obtenir une vue d’ensemble de DDX et DDV, consultez les rubriques d’échange de données et de validation et de boîte de dialogue de boîte de dialogue.

CDataExchange ::P repareCtrl

L’infrastructure appelle cette fonction membre pour préparer le contrôle spécifié pour l’échange de données de dialogue (DDX) et la validation (DDV).

HWND PrepareCtrl(int nIDC);

Paramètres

nIDC
ID du contrôle à préparer pour DDX ou DDV.

Valeur de retour

HWND du contrôle en cours de préparation pour DDX ou DDV.

Notes

Utilisez PrepareEditCtrl à la place pour les contrôles d’édition ; utilisez cette fonction membre pour tous les autres contrôles.

La préparation consiste à stocker le HWND du contrôle dans la CDataExchange classe. L’infrastructure utilise ce handle pour restaurer le focus sur le contrôle précédemment prioritaire en cas d’échec DDX ou DDV.

Les implémenteurs de routines DDX ou DDV personnalisées doivent appeler PrepareCtrl pour tous les contrôles non modifiés pour lesquels ils échangent des données via DDX ou en validant des données via DDV.

Pour plus d’informations sur l’écriture de vos propres routines DDX et DDV, consultez la Note technique 26. Pour obtenir une vue d’ensemble de DDX et DDV, consultez les rubriques d’échange de données et de validation et de boîte de dialogue de boîte de dialogue.

CDataExchange ::P repareEditCtrl

L’infrastructure appelle cette fonction membre pour préparer le contrôle d’édition spécifié pour l’échange de données de boîte de dialogue (DDX) et la validation (DDV).

HWND PrepareEditCtrl(int nIDC);

Paramètres

nIDC
ID du contrôle d’édition à préparer pour DDX ou DDV.

Valeur de retour

HWND du contrôle d’édition préparé pour DDX ou DDV.

Notes

Utilisez PrepareCtrl à la place pour tous les contrôles non modifiés.

La préparation se compose de deux choses. Tout d’abord, PrepareEditCtrl stocke le HWND du contrôle dans la CDataExchange classe. L’infrastructure utilise ce handle pour restaurer le focus sur le contrôle précédemment prioritaire en cas d’échec DDX ou DDV. Ensuite, PrepareEditCtrl définit un indicateur dans la CDataExchange classe pour indiquer que le contrôle dont les données sont échangées ou validées est un contrôle d’édition.

Les implémenteurs de routines DDX ou DDV personnalisées doivent appeler PrepareEditCtrl pour tous les contrôles d’édition pour lesquels ils échangent des données via DDX ou en validant des données via DDV.

Pour plus d’informations sur l’écriture de vos propres routines DDX et DDV, consultez la Note technique 26. Pour obtenir une vue d’ensemble de DDX et DDV, consultez les rubriques d’échange de données et de validation et de boîte de dialogue de boîte de dialogue.

CDataExchange ::P repareOleCtrl

L’infrastructure appelle cette fonction membre pour préparer le contrôle OLE spécifié pour l’échange de données de dialogue (DDX) et la validation (DDV).

COleControlSite* PrepareOleCtrl(int nIDC);

Paramètres

nIDC
ID du contrôle OLE à préparer pour DDX ou DDV.

Valeur de retour

Pointeur vers le site de contrôle OLE.

Notes

Utilisez PrepareEditCtrl à la place pour modifier des contrôles ou PrepareCtrl pour tous les autres contrôles non OLE.

Les implémenteurs de routines DDX ou DDV personnalisées doivent appeler PrepareOleCtrl pour tous les contrôles OLE pour lesquels ils échangent des données via DDX ou en validant des données via DDV.

Pour plus d’informations sur l’écriture de vos propres routines DDX et DDV, consultez la Note technique 26. Pour obtenir une vue d’ensemble de DDX et DDV, consultez les rubriques d’échange de données et de validation et de boîte de dialogue de boîte de dialogue.

Voir aussi

Exemple MFC VIEWEX
Graphique hiérarchique
CWnd ::D oDataExchange
CWnd ::UpdateData