CDialog

La clase CDialog es la clase base utilizada para mostrar cuadros de diálogo en la pantalla. Cuadros de diálogo son de dos tipos: modales y no modales. Un cuadro de diálogo modal debe estar cerrado por el usuario antes de que la aplicación continúe. Un cuadro de diálogo no modal permite al usuario mostrar el cuadro de diálogo y volver a otra tarea sin cancelar o eliminar el cuadro de diálogo.

Un objeto CDialog es una combinación de una plantilla de cuadro de diálogo y un CDialog-clase derivada. Utilice el editor de diálogo para crear la plantilla de cuadro de diálogo y almacenarla en un recurso y, a continuación, utilice ClassWizard para crear una clase derivada de CDialog.

Un cuadro de diálogo, como cualquier otra ventana, recibe mensajes de Windows. En un cuadro de diálogo está particularmente interesado en el manejo de mensajes de notificación de los controles del cuadro de diálogo ya es cómo el usuario interactúa con el cuadro de diálogo. ClassWizard navega a través de los mensajes potenciales generados por cada control en el cuadro de diálogo, y puede seleccionar los mensajes que desea controlar. ClassWizard agrega entonces las entradas de mapa de mensajes apropiados y las funciones de miembro de controlador de mensajes para la nueva clase para usted. Sólo tienes que escribir código específico de la aplicación de las funciones de miembro de controlador.

Si lo prefiere, usted puede siempre escribir entradas de mapa de mensajes y funciones miembro en lugar de utilizar ClassWizard.

En todos pero el cuadro de diálogo más trivial, agregue variables miembro a la clase de diálogo derivado para almacenar los datos introducidos por el usuario en los controles del cuadro de diálogo o para mostrar los datos del usuario. ClassWizard navega a través de los controles en el cuadro de diálogo que pueden asignarse a los datos y le pedirá que cree una variable de miembro para cada control. Al mismo tiempo, elige un tipo de variable y el rango permisible de valores para cada variable. ClassWizard agrega las variables miembro a la clase derivada de diálogo.

ClassWizard, a continuación, escribe un mapa de datos para controlar automáticamente el intercambio de datos entre las variables miembro y los controles del cuadro de diálogo. El mapa de datos proporciona funciones que inicializar los controles en el cuadro de diálogo con los valores apropiados, recuperar los datos y validación los datos.

Para crear un cuadro de diálogo modal, construir un objeto en la pila mediante el constructor para la clase derivada de diálogo y, a continuación, llamar a DoModal para crear la ventana de diálogo y sus controles. Si desea crear un cuadro de diálogo no modal, llame a crear en el constructor de la clase de diálogo.

También puede crear una plantilla en la memoria mediante el uso de un DLGTEMPLATE datos estructuran tal como se describe en la documentación del SDK de Win32. Después de construir un objeto CDialog , llame a CreateIndirect para crear un cuadro de diálogo no modal, o a InitModalIndirect y DoModal para crear un cuadro de diálogo modal.

ClassWizard escribe el mapa de datos de exchange y validación en una anulación de CWnd::DoDataExchange que ClassWizard agrega a su nueva clase de diálogo. Consulte la función de miembro de DoDataExchange en CWnd para obtener más información sobre la funcionalidad de exchange y validación.

El programador y el marco llaman DoDataExchange indirectamente a través de una llamada a CWnd::UpdateData.

El marco llama UpdateData cuando el usuario hace clic en el botón Aceptar para cerrar el cuadro de diálogo modal. (Los datos no se recuperan si se hace clic en el botón Cancelar). La implementación predeterminada de OnInitDialog llama también UpdateData para establecer los valores iniciales de los controles. Se suele reemplaza OnInitDialog para inicializar los controles. OnInitDialog llama después de que se crean todos los controles de cuadro de diálogo y justo antes del cuadro de diálogo se muestra el cuadro.

Puede llamar a CWnd::UpdateData en cualquier momento durante la ejecución de un cuadro de diálogo modal o no modal.

Si usted desarrolla un cuadro de diálogo a mano, agregar las variables miembro necesarios a la clase derivada del cuadro de diálogo usted mismo y agregar funciones miembro para establecer u obtener estos valores.

Para obtener más información sobre ClassWizard, consulte ClassWizard utilizando en la Guía del programador de Visual C++.

Llame a CWinApp::SetDialogBkColor para establecer el color de fondo para cuadros de diálogo de la aplicación.

Un cuadro de diálogo modal cierra automáticamente cuando el usuario presiona los botones Aceptar o cancelar o cuando el código llama a la función de miembro de EndDialog.

Al implementar un cuadro de diálogo no modal, siempre reemplace la función miembro OnCancel y llame a DestroyWindow desde dentro de ella. No llamar a la clase base CDialog::OnCancel, porque llama EndDialog, que hará que el cuadro de diálogo invisible pero no lo destruirá. También deben reemplazar PostNcDestroy para cuadros de diálogo no modal a fin de eliminar este, ya que normalmente se asignan en cuadros de diálogo no modal con nuevo. Cuadros de diálogo modales generalmente se construyen en el marco y no necesitan limpieza de PostNcDestroy.

Para obtener más información sobre CDialog, consulte el artículo Temas de cuadro de diálogo en la Guía del programador de Visual C++.

# include lt;afxwin.h>

Miembros de la claseClase base | Diagrama de jerarquía

Samples    MFC Sample DBFETCH MFC Sample DLGCBR32 MFC Sample DLGTEMPL MFC Sample EXTBIND MFC Sample FTPTREE MFC Sample HELLO MFC Sample MDIBIND MFC Sample VCTERM

Index