¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

Intercambio de datos de cuadro de diálogo

Visual Studio .NET 2003

Si se utiliza el mecanismo de intercambio de datos de cuadro de diálogo (DDX), se establecen los valores iniciales de las variables miembro del objeto del cuadro de diálogo, normalmente en el controlador OnInitDialog o en el constructor de cuadros de diálogo. Justo antes de que aparezca el cuadro de diálogo, el mecanismo DDX del marco de trabajo transfiere los valores de las variables miembro a los controles del cuadro de diálogo donde aparecen, cuando el propio cuadro de diálogo aparece como respuesta a DoModal o Create. La implementación predeterminada de OnInitDialog en CDialog llama a la función miembro UpdateData de la clase CWnd para inicializar los controles del cuadro de diálogo.

El mismo mecanismo transfiere valores desde los controles a las variables miembro cuando el usuario hace clic en el botón Aceptar (o cada vez que se llama a la función miembro UpdateData con el argumento TRUE). El mecanismo de validación de datos de cuadro de diálogo valida cualquier elemento de datos para el que se hayan especificado reglas de validación.

La ilustración siguiente muestra el intercambio de datos de cuadro de diálogo.

Intercambio de datos de cuadro de diálogo

UpdateData funciona en ambas direcciones, según se especifica mediante el parámetro BOOL que se le pasa. Para que se produzca el intercambio, UpdateData establece un objeto CDataExchange y llama a la función que, en la clase de cuadro de diálogo que haya creado, reemplaza a la función miembro DoDataExchange de la clase base CDialog. DoDataExchange toma un argumento de tipo CDataExchange. El objeto CDataExchange pasado a UpdateData representa el contexto del intercambio, definiendo dicha información como la dirección del intercambio.

Cuando el programador (o un Asistente para código) reemplaza a DoDataExchange, se especifica una llamada a una función DDX por miembro de datos (control). Cada función DDX sabe cómo intercambiar datos en ambas direcciones, en función del contexto que proporciona el argumento de CDataExchange pasado a DoDataExchange mediante UpdateData.

MFC proporciona muchas funciones DDX para distintos tipos de intercambio. El siguiente ejemplo muestra un reemplazo DoDataExchange en el que se invocan dos funciones DDX y una función DDV:

void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);    // Call base class version
    DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVar);
    DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
    DDV_MaxChars(pDX, m_strName, 20);
}

Las líneas DDX_ y DDV_ son un mapa de datos. Las funciones DDX y DDV de ejemplo que se muestran son para un control de casilla de verificación y para un control de cuadro de edición, respectivamente.

Si el usuario cancela un cuadro de diálogo modal, la función miembro OnCancel termina el cuadro de diálogo y DoModal devuelve el valor IDCANCEL. En ese caso, no se intercambian datos entre el cuadro de diálogo y el objeto de cuadro de diálogo.

Vea también

Intercambio y validación de datos de cuadro de diálogo | Duración de un cuadro de diálogo | Validación de datos de cuadro de diálogo

Mostrar:
© 2015 Microsoft