Función TaskDialogIndirect (commctrl.h)

La función TaskDialogIndirect crea, muestra y opera un cuadro de diálogo de tarea. El cuadro de diálogo de tarea contiene iconos definidos por la aplicación, mensajes, título, casilla de verificación, vínculos de comandos, botones de inserción y botones de radio. Esta función puede registrar una función de devolución de llamada para recibir mensajes de notificación.

Sintaxis

HRESULT TaskDialogIndirect(
  [in]            const TASKDIALOGCONFIG *pTaskConfig,
  [out, optional] int                    *pnButton,
  [out, optional] int                    *pnRadioButton,
  [out, optional] BOOL                   *pfVerificationFlagChecked
);

Parámetros

[in] pTaskConfig

Tipo: const TASKDIALOGCONFIG*

Puntero a una estructura TASKDIALOGCONFIG que contiene información utilizada para mostrar el cuadro de diálogo de tareas.

[out, optional] pnButton

Tipo: int*

Dirección de una variable que recibe:

  • uno de los identificadores de botón especificados en el miembro pButtons del parámetro pTaskConfig
  • uno de los siguientes valores:
Valor Descripción
0 Error en la llamada de función. Consulte el valor devuelto para obtener más información.
IDCANCEL Se seleccionó el botón Cancelar, se presionó Alt-F4, se presionó Escape o el usuario hizo clic en el botón cerrar ventana.
IDNO No se ha seleccionado ningún botón.
IDOK Se ha seleccionado el botón Aceptar.
IDRETRY Se ha seleccionado el botón Reintentar.
IDYES Se ha seleccionado el botón Sí.
 

Si este parámetro es NULL, no se devuelve ningún valor.

[out, optional] pnRadioButton

Tipo: int*

Dirección de una variable que recibe uno de los identificadores de botón especificados en el miembro pRadioButtons del parámetro pTaskConfig . Si este parámetro es NULL, no se devuelve ningún valor.

[out, optional] pfVerificationFlagChecked

Tipo: BOOL*

Dirección de una variable que recibe uno de los valores siguientes.

Valor Descripción
TRUE La casilla de verificación se ha activado cuando se descartó el cuadro de diálogo.
FALSE La casilla de verificación no se ha activado cuando se descartó el cuadro de diálogo.
 

Si este parámetro es NULL, la casilla de verificación está deshabilitada.

Valor devuelto

Tipo: HRESULT

Esta función puede devolver uno de estos valores.

Código devuelto Descripción
S_OK
La operación se ha completado correctamente.
E_OUTOFMEMORY
No hay memoria suficiente para completar la operación.
E_INVALIDARG
Uno o varios argumentos no son válidos.
E_FAIL
Error en la operación.

Comentarios

Cuando se usa un cuadro de diálogo de tareas para indicar que el sistema tiene poca memoria, las cadenas a las que apuntan los distintos miembros de cadena e icono de la estructura TASKDIALOGCONFIG no deben tomarse de un archivo de recursos, ya que se puede producir un error al intentar cargar el recurso.

Si crea un cuadro de diálogo de tareas mientras hay un cuadro de diálogo, use un identificador para el cuadro de diálogo como parámetro hWndParent . El parámetro hWndParent no debe identificar una ventana secundaria, como un control en un cuadro de diálogo.

La ventana primaria no debe estar oculta o deshabilitada cuando se llama a esta función.


int nButtonPressed                  = 0;
TASKDIALOGCONFIG config             = {0};
const TASKDIALOG_BUTTON buttons[]   = { 
                                        { IDOK, L"Change password" }
                                      };
config.cbSize                       = sizeof(config);
config.hInstance                    = hInst;
config.dwCommonButtons              = TDCBF_CANCEL_BUTTON;
config.pszMainIcon                  = TD_WARNING_ICON;
config.pszMainInstruction           = L"Change Password";
config.pszContent                   = L"Remember your changed password.";
config.pButtons                     = buttons;
config.cButtons                     = ARRAYSIZE(buttons);

TaskDialogIndirect(&config, &nButtonPressed, NULL, NULL);
switch (nButtonPressed)
{
    case IDOK:
        break; // the user pressed button 0 (change password).
    case IDCANCEL:
        break; // user canceled the dialog
    default:
        break; // should never happen
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado commctrl.h (include Commctrl.h)
Library Comctl32.lib
Archivo DLL Comctl32.dll (versión 6)

Consulte también

Cuadros de diálogo