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 Fail
produce 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