Compartir a través de


CDialog::DoModal

Llame a esta función miembro para invocar el cuadro de diálogo modal y devolver el resultado del cuadro de diálogo cuando termine.

virtual INT_PTR DoModal( );

Valor devuelto

Un valor de int que especifica el valor del parámetro de nResult pasado a la función miembro de CDialog:: EndDialog , que se utiliza para cerrar el cuadro de diálogo.El valor devuelto es – 1 si la función no pudo crear el cuadro de diálogo, o IDABORT si algún otro error aparece, en este caso Ventana de salida contiene información de error de GetLastError.

Comentarios

Esta función miembro controla toda la interacción con el usuario mientras el cuadro de diálogo está activa.Esto es lo que hace que el cuadro de diálogo modal; es decir, el usuario no puede interactuar con otras ventanas hasta que se cierra el cuadro de diálogo.

Si el usuario hace clic en uno de los pulsadores en el cuadro de diálogo, como ACEPTAR o cancelar, una función miembro de controladores de mensajes, como OnOK o OnCancel, llamar a para intentar cerrar el cuadro de diálogo.La función miembro de OnOK predeterminado validará y actualizará los datos del cuadro de diálogo y se cerrará el cuadro de diálogo con el resultado IDOK, y la función miembro de OnCancel predeterminado se cerrará el cuadro de diálogo con el resultado IDCANCEL sin validar o actualizar los datos del cuadro de diálogo.Puede reemplazar estas funciones de controlador de mensajes para modificar su comportamiento.

[!NOTA]

PreTranslateMessage se denomina ahora para el procesamiento de mensajes cuadro de diálogo modal.

Ejemplo

void CMyDialog::OnMenuShowAboutDialog()
{
   // Construct the dialog box passing the 
   // ID of the dialog template resource
   CDialog aboutDlg(IDD_ABOUTBOX);

   // Create and show the dialog box
   INT_PTR nRet = -1;
   nRet = aboutDlg.DoModal();

   // Handle the return value from DoModal
   switch (nRet)
   {
      case -1: 
         AfxMessageBox(_T("Dialog box could not be created!"));
         break;
      case IDABORT:
         // Do something
         break;
      case IDOK:
         // Do something
         break;
      case IDCANCEL:
         // Do something
         break;
      default:
         // Do something
         break;
   };
}

Requisitos

encabezado: afxwin.h

Vea también

Referencia

Clase CDialog

Gráfico de jerarquía

DialogBox

CWnd::IsDialogMessage