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