CDataExchange (clase)

Admite rutinas de intercambio de datos de cuadros de diálogo (DDX) y de validación de datos de cuadros de diálogo (DDV) utilizadas por las clases de Microsoft Foundation.

Sintaxis

class CDataExchange

Miembros

Constructores públicos

Nombre Descripción
CDataExchange::CDataExchange Construye un objeto CDataExchange.

Métodos públicos

Nombre Descripción
CDataExchange::Fail Se llama a este valor cuando se produce un error en la validación. Se usa para restablecer el foco en el control anterior e iniciar una excepción.
CDataExchange::PrepareCtrl Se usa para preparar el control especificado para el intercambio o validación de datos. Se emplea en controles que no son de edición.
CDataExchange::PrepareEditCtrl Se usa para preparar el control de edición especificado para el intercambio o validación de datos.
CDataExchange::PrepareOleCtrl Se usa para preparar el control especificado OLE para el intercambio o validación de datos. Se emplea en controles que no son de edición.

Miembros de datos públicos

Nombre Descripción
CDataExchange::m_bSaveAndValidate Se usa para marcar la dirección de DDX y DDV.
CDataExchange::m_pDlgWnd Cuadro de diálogo o ventana en el que se produce el intercambio de datos.

Comentarios

CDataExchange no tiene una clase base.

Se usa esta clase en el caso de que se escriban rutinas de intercambio de datos para controles o tipos de datos personalizados o si se escriben rutinas propias de validación de datos. En la nota técnica 26 se ofrece más información sobre cómo escribir rutinas propias DDX y DDV. Consulte Dialog Data Exchange and Validation, (Intercambio y validación de datos y diálogo), y Dialog Boxes, (Cuadros de diálogo) para obtener información general sobre DDX y DDV.

Un objeto CDataExchange proporciona la información de contexto que se necesita para que se produzca DDX y DDV. El valor de la marca m_bSaveAndValidate es FALSE cuando se rellenan los valores iniciales de los controles de diálogo de los miembros de datos mediante DDX. El valor de la marca m_bSaveAndValidate es TRUE cuando se establecen los valores actuales de los controles de diálogo en miembros de datos mediante DDX y se validan los valores de datos con DDV. Si no se puede validar DDV, se mostrará un cuadro de mensaje que explica el error de entrada en el procedimiento DDV. El procedimiento DDV llamará a continuación a Fail para restablecer el foco al control infractor y se producirá una excepción para detener el proceso de validación.

Jerarquía de herencia

CDataExchange

Requisitos

Encabezado: afxwin.h

CDataExchange::CDataExchange

Llame a esta función miembro para construir un objeto CDataExchange.

CDataExchange(
    CWnd* pDlgWnd,
    BOOL bSaveAndValidate);

Parámetros

pDlgWnd
Puntero que apunta a la ventana primaria que contiene el control. Se suele tratar de un objeto derivado de CDialog.

bSaveAndValidate
Si el valor es TRUE, este objeto valida los datos y, a continuación, escribe los datos de los controles en los miembros. Si el valor es FALSE, este objeto desplazará los datos de los miembros a los controles.

Comentarios

Usted mismo puede construir un objeto CDataExchange para almacenar información adicional en el objeto de intercambio de datos para pasar a la función miembro CWnd::DoDataExchange de la ventana.

Ejemplo

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

El marco llama a esta función miembro cuando se produce un error al validar los datos de diálogo (DDV).

void Fail();

Comentarios

Fail restaura el foco y la selección en el control cuya validación no se produjo, si hay un control que se va a restaurar. A continuación Failproduce una excepción del tipo CUserException para detener la validación. A causa de esta excepción, se muestra un cuadro de mensaje en el que se explica el error. Después del error en la validación de DDV, se pueden volver a escribir datos en el control infractor.

Los implementadores de rutinas de DDV personalizadas pueden llamar a Fail desde sus rutinas si se produce un error de validación.

En la nota técnica 26 se ofrece más información sobre cómo escribir rutinas propias DDX y DDV. Consulte Dialog Data Exchange and Validation, (Intercambio y validación de datos y diálogo), y Dialog Boxes Topics, (Temas de cuadros de diálogo) para obtener información general sobre DDX y DDV.

CDataExchange::m_bSaveAndValidate

Esta marca se usa para indicar la dirección de una operación de intercambio de datos de diálogo (DDX).

BOOL m_bSaveAndValidate;

Comentarios

La marca no indica cero si se usa el objetoCDataExchange para mover datos de los controles de diálogo a los miembros de datos de clase de diálogo después de editar los controles. La marca indica cero si el objeto se usa para inicializar controles de diálogo de miembros de datos de clase de diálogo.

La marca no indica tampoco cero durante la validación de datos de diálogo (DDV).

En la nota técnica 26 se ofrece más información sobre cómo escribir rutinas propias DDX y DDV. Consulte Dialog Data Exchange and Validation, (Intercambio y validación de datos y diálogo), y Dialog Boxes Topics, (Temas de cuadros de diálogo) para obtener información general sobre DDX y DDV.

CDataExchange::m_pDlgWnd

Contiene un puntero que apunta al objeto CWnd para el que se realiza el intercambio de datos de diálogo (DDX) o la validación (DDV).

CWnd* m_pDlgWnd;

Comentarios

Suele tratarse de un objeto CDialog . Los implementadores de rutinas DDX o DDV personalizadas pueden usar este puntero para acceder a la ventana de diálogo que contiene los controles en los que trabajan.

En la nota técnica 26 se ofrece más información sobre cómo escribir rutinas propias DDX y DDV. Consulte Dialog Data Exchange and Validation, (Intercambio y validación de datos y diálogo), y Dialog Boxes Topics, (Temas de cuadros de diálogo) para obtener información general sobre DDX y DDV.

CDataExchange::PrepareCtrl

El marco llama a esta función miembro para preparar el control que se especifica en el intercambio de datos de diálogo (DDX) y la validación (DDV).

HWND PrepareCtrl(int nIDC);

Parámetros

nIDC
Id. del control que se va a preparar para DDX o DDV.

Valor devuelto

HWND del control que se prepara para DDX o DDV.

Comentarios

En su lugar, use PrepareEditCtrl para editar controles y esta función miembro para todos los demás controles.

Para la preparación hay que almacenar el HWND del control en la clase CDataExchange. El marco emplea este identificador para restaurar el foco al control centrado anteriormente en caso de un error de DDX o DDV.

Es necesario que los implementadores de rutinas DDX o DDV personalizadas llamen a PrepareCtrl para todos los controles que no son de edición para los que intercambian datos por medio de DDX o validan datos a través de DDV.

En la nota técnica 26 se ofrece más información sobre cómo escribir rutinas propias DDX y DDV. Consulte Dialog Data Exchange and Validation, (Intercambio y validación de datos y diálogo), y Dialog Boxes Topics, (Temas de cuadros de diálogo) para obtener información general sobre DDX y DDV.

CDataExchange::PrepareEditCtrl

El marco llama a esta función miembro para preparar el control de edición que se especifica en el intercambio de datos de diálogo (DDX) y la validación (DDV).

HWND PrepareEditCtrl(int nIDC);

Parámetros

nIDC
Id. del control de edición que se va a preparar para DDX o DDV.

Valor devuelto

HWND del control de edición que se prepara para DDX o DDV.

Comentarios

En su lugar, use PrepareCtrl para todos los controles que no son de edición.

La preparación consta de dos aspectos. En primer lugar, PrepareEditCtrl almacena el HWND del control en la clase CDataExchange. El marco emplea este identificador para restaurar el foco al control centrado anteriormente en caso de un error de DDX o DDV. En segundo lugar, PrepareEditCtrl indica que el control cuyos datos se intercambian o validan es un control de edición mediante una marca en la clase CDataExchange.

Es necesario que los implementadores de rutinas DDX o DDV personalizadas llamen a PrepareEditCtrl para todos los controles de edición para los que intercambian datos por medio de DDX o validan datos a través de DDV.

En la nota técnica 26 se ofrece más información sobre cómo escribir rutinas propias DDX y DDV. Consulte Dialog Data Exchange and Validation, (Intercambio y validación de datos y diálogo), y Dialog Boxes Topics, (Temas de cuadros de diálogo) para obtener información general sobre DDX y DDV.

CDataExchange::PrepareOleCtrl

El marco llama a esta función miembro para preparar el control OLE que se especifica en el intercambio de datos de diálogo (DDX) y la validación (DDV).

COleControlSite* PrepareOleCtrl(int nIDC);

Parámetros

nIDC
Id. del control OLE que se va a preparar para DDX o DDV.

Valor devuelto

Puntero que apunta al sitio de control OLE.

Comentarios

En su lugar, use PrepareEditCtrl para editar controles o PrepareCtrl para los demás controles que no son OLE.

Es necesario que los implementadores de rutinas DDX o DDV personalizadas llamen a PrepareOleCtrl para todos los controles OLE para los que intercambian datos por medio de DDX o validan datos a través de DDV.

En la nota técnica 26 se ofrece más información sobre cómo escribir rutinas propias DDX y DDV. Consulte Dialog Data Exchange and Validation, (Intercambio y validación de datos y diálogo), y Dialog Boxes Topics, (Temas de cuadros de diálogo) para obtener información general sobre DDX y DDV.

Consulte también

Ejemplo de MFC VIEWEX
Gráfico de jerarquías
CWnd::D oDataExchange
CWnd::UpdateData