Compartir a través de


CTaskDialog (clase)

Un cuadro de diálogo emergente que funciona como un cuadro de mensaje pero que puede mostrar información adicional al usuario. CTaskDialog también incluye funcionalidad para recopilar información del usuario.

Sintaxis

class CTaskDialog : public CObject

Miembros

Constructores

Nombre Descripción
CTaskDialog::CTaskDialog Construye un objeto CTaskDialog.

Métodos

Nombre Descripción
CTaskDialog::AddCommandControl Agrega un control de botón de comando al objeto CTaskDialog.
CTaskDialog::AddRadioButton Agrega un botón de radio al objeto CTaskDialog.
CTaskDialog::ClickCommandControl Hace clic en un control de botón de comando o un botón común mediante programación.
CTaskDialog::ClickRadioButton Hace clic en un botón de radio mediante programación.
CTaskDialog::DoModal Muestra el CTaskDialog.
CTaskDialog::GetCommonButtonCount Recupera el número de botones comunes disponibles.
CTaskDialog::GetCommonButtonFlag Convierte un botón estándar de Windows en el tipo de botón común asociado a la clase CTaskDialog.
CTaskDialog::GetCommonButtonId Convierte uno de los tipos de botón común asociados a la clase CTaskDialog en un botón estándar de Windows.
CTaskDialog::GetOptions Devuelve las marcas de opción para este objeto CTaskDialog.
CTaskDialog::GetSelectedCommandControlID Devuelve el control de botón de comando seleccionado.
CTaskDialog::GetSelectedRadioButtonID Devuelve el botón de radio seleccionado.
CTaskDialog::GetVerificationCheckboxState Recupera el estado de la casilla de verificación.
CTaskDialog::IsCommandControlEnabled Determina si está habilitado un control de botón de comando o un botón común.
CTaskDialog::IsRadioButtonEnabled Determina si un botón de radio está habilitado.
CTaskDialog::IsSupported Determina si el equipo que ejecuta la aplicación admite el objeto CTaskDialog.
CTaskDialog::LoadCommandControls Agrega controles de botón de comando mediante el uso de datos de la tabla de cadenas.
CTaskDialog::LoadRadioButtons Agrega botones de radio mediante el uso de datos de la tabla de cadenas.
CTaskDialog::NavigateTo Transfiere el foco a otro objeto CTaskDialog.
CTaskDialog::OnCommandControlClick El marco llama a este método cuando el usuario hace clic en un control de botón de comando.
CTaskDialog::OnCreate El marco llama a este método después de crear el objeto CTaskDialog.
CTaskDialog::OnDestroy El marco llama a este método inmediatamente antes de destruir el objeto CTaskDialog.
CTaskDialog::OnExpandButtonClick El marco llama a este método cuando el usuario hace clic en el botón de expansión.
CTaskDialog::OnHelp El marco llama a este método cuando el usuario solicita ayuda.
CTaskDialog::OnHyperlinkClick El marco llama a este método cuando el usuario hace clic en un hipervínculo.
CTaskDialog::OnInit El marco llama a este método cuando se inicializa el objeto CTaskDialog.
CTaskDialog::OnNavigatePage El marco llama a este método cuando el usuario mueve el foco con respecto a los controles del objeto CTaskDialog.
CTaskDialog::OnRadioButtonClick El marco llama a este método cuando el usuario selecciona un control de botón de radio.
CTaskDialog::OnTimer El marco llama a este método cuando expira el temporizador.
CTaskDialog::OnVerificationCheckboxClick El marco llama a este método cuando el usuario hace clic en la casilla de verificación.
CTaskDialog::RemoveAllCommandControls Quita todos los controles de comando del objeto CTaskDialog.
CTaskDialog::RemoveAllRadioButtons Quita todos los botones de radio del objeto CTaskDialog.
CTaskDialog::SetCommandControlOptions Actualiza un control de botón de comando en el objeto CTaskDialog.
CTaskDialog::SetCommonButtonOptions Actualiza un subconjunto de botones comunes que se habilitarán y requerirán elevación de UAC.
CTaskDialog::SetCommonButtons Agrega botones comunes al objeto CTaskDialog.
CTaskDialog::SetContent Actualiza el contenido del objeto CTaskDialog.
CTaskDialog::SetDefaultCommandControl Especifica el control de botón de comando predeterminado.
CTaskDialog::SetDefaultRadioButton Especifica el botón de radio predeterminado.
CTaskDialog::SetDialogWidth Ajusta el ancho del objeto CTaskDialog.
CTaskDialog::SetExpansionArea Actualiza el área de expansión del objeto CTaskDialog.
CTaskDialog::SetFooterIcon Actualiza el icono de pie de página del objeto CTaskDialog.
CTaskDialog::SetFooterText Actualiza el texto del pie de página del objeto CTaskDialog.
CTaskDialog::SetMainIcon Actualiza el icono principal del objeto CTaskDialog.
CTaskDialog::SetMainInstruction Actualiza la instrucción principal del objeto CTaskDialog.
CTaskDialog::SetOptions Configura las opciones del objeto CTaskDialog.
CTaskDialog::SetProgressBarMarquee Configura una barra de marquesina para el objeto CTaskDialog y la agrega al cuadro de diálogo.
CTaskDialog::SetProgressBarPosition Ajusta la posición de la barra de progreso.
CTaskDialog::SetProgressBarRange Ajusta el intervalo de la barra de progreso.
CTaskDialog::SetProgressBarState Establece el estado de la barra de progreso y lo muestra en el objeto CTaskDialog.
CTaskDialog::SetRadioButtonOptions Habilita o deshabilita un botón de radio.
CTaskDialog::SetVerificationCheckbox Establece el estado activado de la casilla de verificación.
CTaskDialog::SetVerificationCheckboxText Establece el texto en el lado derecho de la casilla de verificación.
CTaskDialog::SetWindowTitle Establece el título del objeto CTaskDialog.
CTaskDialog::ShowDialog Crea y muestra un objeto CTaskDialog.
CTaskDialog::TaskDialogCallback El marco lo llama en respuesta a varios mensajes de Windows.

Miembros de datos

Nombre Descripción
m_aButtons Matriz de controles de botón de comando para el objeto CTaskDialog.
m_aRadioButtons Matriz de controles de botón de radio para el objeto CTaskDialog.
m_bVerified TRUE indica que la casilla de verificación está activada; FALSE indica que no lo está.
m_footerIcon Icono del pie de página del objeto CTaskDialog.
m_hWnd Identificador de la ventana para el objeto CTaskDialog.
m_mainIcon Icono principal del objeto CTaskDialog.
m_nButtonDisabled Máscara que indica cuáles de los botones comunes están deshabilitados.
m_nButtonElevation Máscara que indica cuál de los botones comunes requiere elevación de UAC.
m_nButtonId Identificador del control de botón de comando seleccionado.
m_nCommonButton Máscara que indica qué botones comunes se muestran en el objeto CTaskDialog.
m_nDefaultCommandControl Identificador del control de botón de comando que se selecciona cuando se muestra el objeto CTaskDialog.
m_nDefaultRadioButton Identificador del control de botón de radio que se selecciona cuando se muestra el objeto CTaskDialog.
m_nFlags Máscara que indica las opciones del objeto CTaskDialog.
m_nProgressPos Posición actual de la barra de progreso. Dicho valor debe encontrarse entre m_nProgressRangeMin y m_nProgressRangeMax.
m_nProgressRangeMax Valor máximo de la barra de progreso.
m_nProgressRangeMin Valor mínimo de la barra de progreso.
m_nProgressState Estado de la barra de progreso. Para obtener más información, consulte CTaskDialog::SetProgressBarState.
m_nRadioId Identificador del control de botón de radio seleccionado.
m_nWidth Ancho del control CTaskDialog, en píxeles.
m_strCollapse Cadena que el objeto CTaskDialog muestra a la derecha del cuadro de expansión cuando se oculta la información expandida.
m_strContent Cadena de contenido del objeto CTaskDialog.
m_strExpand Cadena que el objeto CTaskDialog muestra a la derecha del cuadro de expansión cuando se muestra la información expandida.
m_strFooter Pie de página del objeto CTaskDialog.
m_strInformation Información expandida del objeto CTaskDialog.
m_strMainInstruction Instrucción principal del objeto CTaskDialog.
m_strTitle Título de .CTaskDialog
m_strVerification Cadena que el objeto CTaskDialog muestra a la derecha de la casilla de verificación.

Comentarios

La clase CTaskDialog reemplaza el cuadro de mensaje estándar de Windows y tiene funcionalidad adicional, como nuevos controles para recopilar información del usuario. Esta clase se encuentra en la biblioteca MFC en Visual Studio 2010 y versiones posteriores. El objeto CTaskDialog está disponible a partir de Windows Vista. Las versiones anteriores de Windows no pueden mostrar el objeto CTaskDialog. Use CTaskDialog::IsSupported para determinar en tiempo de ejecución si el usuario actual puede mostrar el cuadro de diálogo de la tarea. Todavía se admite el cuadro de mensaje estándar de Windows.

El objeto CTaskDialog solo está disponible cuando se compila la aplicación mediante la biblioteca de Unicode.

El objeto CTaskDialog tiene dos constructores diferentes. Un constructor permite especificar dos botones de comando y un máximo de seis controles de botón normales. Se pueden agregar más botones de comando después de crear el objeto CTaskDialog. El segundo constructor no admite ningún botón de comando, pero se puede agregar un número ilimitado de controles de botón normales. Para obtener más información sobre los constructores, consulte CTaskDialog::CTaskDialog.

En la imagen siguiente se muestra un objeto CTaskDialog de ejemplo para ilustrar la ubicación de algunos de los controles.

Ejemplo de CTaskDialog.
Ejemplo de objeto CTaskDialog

Requisitos

Sistema operativo mínimo necesario: Windows Vista

Encabezado: afxtaskdialog.h

CTaskDialog::AddCommandControl

Agrega un nuevo control de botón de comando al objeto CTaskDialog.

void AddCommandControl(
    int nCommandControlID,
    const CString& strCaption,
    BOOL bEnabled = TRUE,
    BOOL bRequiresElevation = FALSE);

Parámetros

nCommandControlID
[in] Número de identificación del control de comando.

strCaption
[in] Cadena que el objeto CTaskDialog muestra al usuario. Use esta cadena para explicar el propósito del comando.

bEnabled
[in] Parámetro booleano que indica si el botón nuevo está habilitado o deshabilitado.

bRequiresElevation
[in] Parámetro booleano que indica si un comando requiere elevación.

Comentarios

CTaskDialog Class puede mostrar un número ilimitado de controles de botón de comando. Aun así, si un objeto CTaskDialog muestra algún control de botón de comando, puede mostrar como máximo seis botones. Si un objeto CTaskDialog no tiene controles de botón de comando, puede mostrar un número ilimitado de botones.

Cuando el usuario selecciona un control de botón de comando, el objeto CTaskDialog se cierra. Si la aplicación muestra el cuadro de diálogo mediante CTaskDialog::DoModal, DoModal devuelve el identificador nCommandControlID del control de botón de comando seleccionado.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::AddRadioButton

Agrega un botón de radio al objeto CTaskDialog.

void CTaskDialog::AddRadioButton(
    int nRadioButtonID,
    const CString& strCaption,
    BOOL bEnabled = TRUE);

Parámetros

nRadioButtonID
[in] Número de identificación del botón de radio.

strCaption
[in] Cadena que el objeto CTaskDialog muestra junto al botón de radio.

bEnabled
[in] Parámetro booleano que indica si el botón de radio está habilitado.

Comentarios

Los botones de radio de la clase CTaskDialog permiten recopilar información del usuario. Use la función CTaskDialog::GetSelectedRadioButtonID para determinar qué botón de radio está seleccionado.

El objeto CTaskDialog no requiere que los parámetros nRadioButtonID sean únicos para cada botón de radio. Aun así, puede experimentar un comportamiento inesperado si no usa un identificador distinto para cada botón de radio.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::ClickCommandControl

Hace clic en un control de botón de comando o un botón común mediante programación.

protected:
void ClickCommandControl(int nCommandControlID) const;

Parámetros

nCommandControlID
[in] Identificador de comando del control en el que se va a hacer clic.

Comentarios

Este método genera el mensaje de Windows TDM_CLICK_BUTTON.

CTaskDialog::ClickRadioButton

Hace clic en un botón de radio mediante programación.

protected:
void ClickRadioButton(int nRadioButtonID) const;

Parámetros

nRadioButtonID
[in] Identificador del botón de radio en el que se va a hacer clic.

Comentarios

Este método genera el mensaje de Windows TDM_CLICK_RADIO_BUTTON.

CTaskDialog::CTaskDialog

Crea una instancia de la clase CTaskDialog.

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nCommonButtons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

Parámetros

strContent
[in] Cadena que se va a usar para el contenido del objeto CTaskDialog.

strMainInstruction
[in] Instrucción principal del objeto CTaskDialog.

strTitle
[in] Título del objeto CTaskDialog.

nCommonButtons
[in] Máscara de los botones comunes que se van a agregar al objeto CTaskDialog.

nTaskDialogOptions
[in] Conjunto de opciones que se van a usar para el objeto CTaskDialog.

strFooter
[in] Cadena que se va a usar como pie de página.

nIDCommandControlsFirst
[in] Identificador de cadena del primer comando.

nIDCommandControlsLast
[in] Identificador de cadena del último comando.

Comentarios

Hay dos maneras de agregar un objeto CTaskDialog a la aplicación. La primera consiste en usar uno de los constructores para crear un objeto CTaskDialog y mostrarlo mediante CTaskDialog::DoModal. La segunda es usar la función estática CTaskDialog::ShowDialog, que permite mostrar un objeto CTaskDialog sin crear explícitamente un objeto CTaskDialog.

El segundo constructor crea controles de botón de comando mediante el uso de datos del archivo de recursos de la aplicación. La tabla de cadenas del archivo de recursos tiene varias cadenas con identificadores de cadena asociados. Este método agrega un control de botón de comando para cada entrada válida de la tabla de cadenas entre nIDCommandControlsFirst y nCommandControlsLast, ambos incluidos. Para estos controles de botón de comando, la cadena de la tabla de cadenas es el título del control y el identificador de cadena es el identificador del control.

Consulte CTaskDialog::SetOptions para ver una lista de opciones válidas.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::DoModal

Muestra el objeto CTaskDialog y lo convierte en modal.

INT_PTR DoModal (HWND hParent = ::GetActiveWindow());

Parámetros

hParent
[in] Ventana primaria del elemento CTaskDialog.

Valor devuelto

Entero que se corresponde con la selección que ha realizado el usuario.

Comentarios

Muestra esta instancia del objeto CTaskDialog. Después, la aplicación espera a que el usuario cierre el cuadro de diálogo.

El objeto CTaskDialog se cierra cuando el usuario selecciona un botón común, un control de vínculo de comando o cierra dicho objeto CTaskDialog. El valor devuelto es el identificador que indica cómo cerró el usuario el cuadro de diálogo.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::GetCommonButtonCount

Recupera el número de botones comunes.

int GetCommonButtonCount() const;

Valor devuelto

Número de botones comunes disponibles.

Comentarios

Los botones comunes son los botones predeterminados que se proporcionan a CTaskDialog::CTaskDialog. La clase CTaskDialog muestra los botones en la parte inferior del cuadro de diálogo.

La lista enumerada de botones se proporciona en CommCtrl.h.

CTaskDialog::GetCommonButtonFlag

Convierte un botón estándar de Windows en el tipo de botón común asociado a la clase CTaskDialog.

int GetCommonButtonFlag(int nButtonId) const;

Parámetros

nButtonId
[in] Valor del botón estándar de Windows.

Valor devuelto

Valor del botón común del objeto CTaskDialog correspondiente. Si no hay ningún botón común correspondiente, este método devuelve 0.

CTaskDialog::GetCommonButtonId

Convierte uno de los tipos de botón común asociados a la clase CTaskDialog en un botón estándar de Windows.

int GetCommonButtonId(int nFlag);

Parámetros

nFlag
[in] Tipo de botón común asociado a la clase CTaskDialog.

Valor devuelto

Valor del botón estándar de Windows correspondiente. Si no hay ningún botón de Windows correspondiente, el método devuelve 0.

CTaskDialog::GetOptions

Devuelve las marcas de opción para este objeto CTaskDialog.

int GetOptions() const;

Valor devuelto

Marcas para el objeto CTaskDialog.

Comentarios

Para obtener más información sobre las opciones disponibles para la clase CTaskDialog, consulte CTaskDialog::SetOptions.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::GetSelectedCommandControlID

Devuelve el control de botón de comando seleccionado.

int GetSelectedCommandControlID() const;

Valor devuelto

Identificador del control de botón de comando seleccionado actualmente.

Comentarios

No es necesario usar este método para recuperar el identificador del botón de comando que ha seleccionado el usuario. Este identificador lo devuelve CTaskDialog::DoModal o CTaskDialog::ShowDialog.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::GetSelectedRadioButtonID

Devuelve el botón de radio seleccionado.

int GetSelectedRadioButtonID() const;

Valor devuelto

Identificador del botón de radio seleccionado.

Comentarios

Puede usar este método después de que el usuario cierre el cuadro de diálogo para recuperar el botón de radio seleccionado.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::GetVerificationCheckboxState

Recupera el estado de la casilla de verificación.

BOOL GetVerificationCheckboxState() const;

Valor devuelto

TRUE si la casilla está activada; FALSE si no lo está.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog::IsCommandControlEnabled

Determina si está habilitado un control de botón de comando o un botón.

BOOL IsCommandControlEnabled(int nCommandControlID) const;

Parámetros

nCommandControlID
[in] Identificador del control de botón de comando o del botón que se va a probar.

Valor devuelto

TRUE si el control está habilitado; FALSE si no lo está.

Comentarios

Puede usar este método para determinar la disponibilidad de los controles de botón de comando y los botones comunes de la clase CTaskDialog*.

Si nCommandControlID no es un identificador válido para un botón común del objeto CTaskDialog o un control de botón de comando, este método produce una excepción.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::IsRadioButtonEnabled

Determina si un botón de radio está habilitado.

BOOL IsRadioButtonEnabled(int nRadioButtonID) const;

Parámetros

nRadioButtonID
[in] Identificador del botón de radio que se va a probar.

Valor devuelto

TRUE si el botón de radio está habilitado; FALSE si no lo está.

Comentarios

Si nRadioButtonID no es un identificador válido para un botón de radio, este método produce una excepción.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::IsSupported

Determina si el equipo que ejecuta la aplicación admite el objeto CTaskDialog.

static BOOL IsSupported();

Valor devuelto

TRUE si el equipo admite el objeto CTaskDialog; FALSE en caso contrario.

Comentarios

Use esta función para determinar en tiempo de ejecución si el equipo que ejecuta la aplicación admite la clase CTaskDialog. Si el equipo no admite el objeto CTaskDialog, debe proporcionar otro método para comunicar información al usuario. La aplicación se bloqueará si intenta usar un objeto CTaskDialog en un equipo que no admite la clase CTaskDialog.

Ejemplo

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog::LoadCommandControls

Agrega controles de botón de comando mediante el uso de datos de la tabla de cadenas.

void LoadCommandControls(
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast);

Parámetros

nIDCommandControlsFirst
[in] Identificador de cadena del primer comando.

nIDCommandControlsLast
[in] Identificador de cadena del último comando.

Comentarios

Este método crea controles de botón de comando mediante el uso de datos del archivo de recursos de la aplicación. La tabla de cadenas del archivo de recursos tiene varias cadenas con identificadores de cadena asociados. Los nuevos controles de botón de comando que agrega este método usan la cadena para el título del control y el identificador de cadena para el identificador del control. El intervalo de cadenas seleccionadas se proporciona mediante nIDCommandControlsFirst y nCommandControlsLast, ambos incluidos. Si hay una entrada vacía en el intervalo, el método no agrega un control de botón de comando para esa entrada.

De forma predeterminada, los nuevos controles de botón de comando están habilitados y no requieren elevación.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::LoadRadioButtons

Agrega controles de botón de radio mediante el uso de datos de la tabla de cadenas.

void LoadRadioButtons(
    int nIDRadioButtonsFirst,
    int nIDRadioButtonsLast);

Parámetros

nIDRadioButtonsFirst
[in] Identificador de cadena del primer botón de radio.

nIDRadioButtonsLast
[in] Identificador de cadena del último botón de radio.

Comentarios

Este método crea botones de radio mediante el uso de datos del archivo de recursos de la aplicación. La tabla de cadenas del archivo de recursos tiene varias cadenas con identificadores de cadena asociados. Los nuevos botones de radio agregados mediante este método usan la cadena para el título del botón de radio y el identificador de cadena para el identificador del botón de radio. El intervalo de cadenas seleccionadas se proporciona mediante nIDRadioButtonsFirst y nRadioButtonsLast, ambos incluidos. Si hay una entrada vacía en el intervalo, el método no agrega un botón de radio para esa entrada.

De forma predeterminada, los nuevos botones de radio están habilitados.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

Transfiere el foco a otro objeto CTaskDialog.

protected:
void NavigateTo(CTaskDialog& oTaskDialog) const;

Parámetros

oTaskDialog
[in] Objeto CTaskDialog que recibe el foco.

Comentarios

Este método oculta el objeto CTaskDialog actual cuando muestra oTaskDialog. oTaskDialog se muestra en la misma ubicación que el objeto CTaskDialog actual.

CTaskDialog::OnCommandControlClick

El marco llama a este método cuando el usuario hace clic en un control de botón de comando.

virtual HRESULT OnCommandControlClick(int nCommandControlID);

Parámetros

nCommandControlID
[in] Identificador del control de botón de comando que ha seleccionado el usuario.

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnCreate

El marco llama a este método después de crear el objeto CTaskDialog.

virtual HRESULT OnCreate();

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnDestroy

El marco llama a este método inmediatamente antes de destruir el objeto CTaskDialog.

virtual HRESULT OnDestroy();

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnExpandButtonClick

El marco llama a este método cuando el usuario hace clic en el botón de expansión.

virtual HRESULT OnExpandButtonClicked(BOOL bExpanded);

Parámetros

bExpanded
[in] Un valor distinto de cero indica que se muestra la información adicional; 0 indica que la información adicional está oculta.

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnHelp

El marco llama a este método cuando el usuario solicita ayuda.

virtual HRESULT OnHelp();

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnHyperlinkClick

El marco llama a este método cuando el usuario hace clic en un hipervínculo.

virtual HRESULT OnHyperlinkClick(const CString& strHref);

Parámetros

strHref
[in] Cadena que representa el hipervínculo.

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Este método llama a ShellExecute antes de devolver S_OK.

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnInit

El marco llama a este método cuando se inicializa el objeto CTaskDialog.

virtual HRESULT OnInit();

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnNavigatePage

El marco llama a este método en respuesta al método CTaskDialog::NavigateTo.

virtual HRESULT OnNavigatePage();

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnRadioButtonClick

El marco llama a este método cuando el usuario selecciona un control de botón de radio.

virtual HRESULT OnRadioButtonClick(int nRadioButtonID);

Parámetros

nRadioButtonID
[in] Identificador del control de botón de radio en el que el usuario ha hecho clic.

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnTimer

El marco llama a este método cuando expira el temporizador.

virtual HRESULT OnTimer(long lTime);

Parámetros

lTime
[in] Tiempo en milisegundos desde que se creó el objeto CTaskDialog o se restableció el temporizador.

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::OnVerificationCheckboxClick

El marco llama a este método cuando el usuario hace clic en la casilla de verificación.

virtual HRESULT OnVerificationCheckboxClick(BOOL bChecked);

Parámetros

bChecked
[in] TRUE indica que la casilla de verificación está activada; FALSE indica que no lo está.

Valor devuelto

La implementación predeterminada devuelve S_OK.

Comentarios

Invalide este método en una clase derivada para implementar el comportamiento personalizado.

CTaskDialog::RemoveAllCommandControls

Quita todos los controles de botón de comando del objeto CTaskDialog.

void RemoveAllCommandControls();

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::RemoveAllRadioButtons

Quita todos los botones de radio del objeto CTaskDialog.

void RemoveAllRadioButtons();

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::SetCommandControlOptions

Actualiza un control de botón de comando en el objeto CTaskDialog.

void SetCommandControlOptions(
    int nCommandControlID,
    BOOL bEnabled,
    BOOL bRequiresElevation = FALSE);

Parámetros

nCommandControlID
[in] Identificador del control de comando que se va a actualizar.

bEnabled
[in] Parámetro booleano que indica si el control de botón de comando especificado está habilitado o deshabilitado.

bRequiresElevation
[in] Parámetro booleano que indica si el control de botón de comando especificado requiere elevación.

Comentarios

Use este método para cambiar si un control de botón de comando está habilitado o requiere elevación después de agregarlo a la clase CTaskDialog.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::SetCommonButtonOptions

Actualiza un subconjunto de botones comunes que se habilitarán y requerirán elevación de UAC.

void SetCommonButtonOptions(
    int nDisabledButtonMask,
    int nElevationButtonMask = 0);

Parámetros

nDisabledButtonMask
[in] Máscara para los botones comunes que se van a deshabilitar.

nElevationButtonMask
[in] Máscara para los botones comunes que requieren elevación.

Comentarios

Puede establecer los botones comunes disponibles para una instancia de la clase CTaskDialog mediante el constructor CTaskDialog::CTaskDialog y el método CTaskDialog::SetCommonButtons. CTaskDialog::SetCommonButtonOptions no admite la adición de nuevos botones comunes.

Si usa este método para deshabilitar o elevar un botón común que no está disponible para este objeto CTaskDialog, el método produce una excepción mediante la macro ENSURE.

Este método habilita cualquier botón que esté disponible para el objeto CTaskDialog, pero que no esté en nDisabledButtonMask, aunque se haya deshabilitado anteriormente. Este método trata la elevación de forma similar: registra botones comunes como si no requiriesen elevación si el botón común está disponible, pero no incluido en nElevationButtonMask.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog::SetCommonButtons

Agrega botones comunes al objeto CTaskDialog.

void SetCommonButtons(
    int nButtonMask,
    int nDisabledButtonMask = 0,
    int nElevationButtonMask = 0);

Parámetros

nButtonMask
[in] Máscara de los botones que se van a agregar al objeto CTaskDialog.

nDisabledButtonMask
[in] Máscara de los botones que se van a deshabilitar.

nElevationButtonMask
[in] Máscara de los botones que requieren elevación.

Comentarios

No se puede llamar a este método después de crear la ventana de presentación de esta instancia de la clase CTaskDialog. Si lo hace, este método produce una excepción.

Los botones que indica nButtonMask invalidan los botones comunes agregados anteriormente al objeto CTaskDialog. Solo están disponibles los botones indicados en nButtonMask.

Si nDisabledButtonMask o nElevationButtonMask contienen un botón que no está en nButtonMask, este método produce una excepción mediante la macro ENSURE.

De forma predeterminada, todos los botones comunes están habilitados y no requieren elevación.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog::SetContent

Actualiza el contenido del objeto CTaskDialog.

void SetContent(const CString& strContent);

Parámetros

strContent
[in] Cadena que se va a mostrar al usuario.

Comentarios

El contenido de la clase CTaskDialog es el texto que se muestra al usuario en la sección principal del cuadro de diálogo.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetDefaultCommandControl

Especifica el control de botón de comando predeterminado.

void SetDefaultCommandControl(int nCommandControlID);

Parámetros

nCommandControlID
[in] Identificador del control de botón de comando que es el valor predeterminado.

Comentarios

El control de botón de comando predeterminado es el control que se selecciona cuando el objeto CTaskDialog se muestra por primera vez al usuario.

Este método produce una excepción si no encuentra el control de botón de comando especificado por nCommandControlID.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::SetDefaultRadioButton

Especifica el botón de radio predeterminado.

void SetDefaultRadioButton(int nRadioButtonID);

Parámetros

nRadioButtonID
[in] Identificador del botón de radio que será el valor predeterminado.

Comentarios

El botón de radio predeterminado es el botón que se selecciona cuando el objeto CTaskDialog se muestra por primera vez al usuario.

Este método produce una excepción si no encuentra el botón de radio especificado por nRadioButtonID.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::SetDialogWidth

Ajusta el ancho del objeto CTaskDialog.

void SetDialogWidth(int nWidth = 0);

Parámetros

nWidth
[in] Ancho del cuadro de diálogo en píxeles.

Comentarios

El parámetro nWidth debe ser mayor que o igual a 0. De lo contrario, este método produce una excepción.

Si nWidth se establece en 0, este método establece el cuadro de diálogo en el tamaño predeterminado.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetExpansionArea

Actualiza el área de expansión del objeto CTaskDialog.

void SetExpansionArea(
    const CString& strExpandedInformation,
    const CString& strCollapsedLabel = _T(""),
    const CString& strExpandedLabel = _T(""));

Parámetros

strExpandedInformation
[in] Cadena que el objeto CTaskDialog muestra en el cuerpo principal del cuadro de diálogo cuando el usuario hace clic en el botón de expansión.

strCollapsedLabel
[in] Cadena que el objeto CTaskDialog muestra junto al botón de expansión cuando se contrae el área expandida.

strExpandedLabel
[in] Cadena que el objeto CTaskDialog muestra junto al botón de expansión cuando se muestra el área expandida.

Comentarios

El área de expansión de la clase CTaskDialog permite proporcionar información adicional al usuario. El área de expansión se encuentra en la parte principal del objeto CTaskDialog, situada inmediatamente debajo del título y la cadena de contenido.

Cuando el objeto CTaskDialog aparece por primera vez, no muestra la información expandida y coloca strCollapsedLabel junto al botón de expansión. Cuando el usuario hace clic en el botón de expansión, el objeto CTaskDialog muestra strExpandedInformation y cambia la etiqueta a strExpandedLabel.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetFooterIcon

Actualiza el icono de pie de página del objeto CTaskDialog.

void SetFooterIcon(HICON hFooterIcon);
void SetFooterIcon(LPCWSTR lpszFooterIcon);

Parámetros

hFooterIcon
[in] Nuevo icono del objeto CTaskDialog.

lpszFooterIcon
[in] Nuevo icono del objeto CTaskDialog.

Comentarios

El icono de pie de página se muestra en la parte inferior de la clase CTaskDialog. Puede tener texto de pie de página asociado. Puede cambiar el texto del pie de página con CTaskDialog::SetFooterText.

Este método produce una excepción con la macro ENSURE si se muestra el objeto CTaskDialog o si el parámetro de entrada es NULL.

Un objeto CTaskDialog solo puede aceptar HICON o LPCWSTR como icono de pie de página. Para configurarlo, se establece la opción TDF_USE_HICON_FOOTER en el constructor o CTaskDialog::SetOptions. De forma predeterminada, el objeto CTaskDialog está configurado para usar LPCWSTR como tipo de entrada para el icono de pie de página. Este método genera una excepción si se intenta establecer el icono con un tipo incorrecto.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetFooterText

Actualiza el texto del pie de página del objeto CTaskDialog.

void SetFooterText(const CString& strFooterText);

Parámetros

strFooterText
[in] Nuevo texto del pie de página.

Comentarios

El icono de pie de página aparece junto al texto del pie de página en la parte inferior del objeto CTaskDialog. Puede cambiar el icono del pie de página con CTaskDialog::SetFooterIcon.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetMainIcon

Actualiza el icono principal del objeto CTaskDialog.

void SetMainIcon(HICON hMainIcon);
void SetMainIcon(LPCWSTR lpszMainIcon);

Parámetros

hMainIcon
[in] Icono nuevo.

lpszMainIcon
[in] Icono nuevo.

Comentarios

Este método produce una excepción con la macro ENSURE si se muestra el objeto CTaskDialog o si el parámetro de entrada es NULL.

Un objeto CTaskDialog solo puede aceptar HICON o LPCWSTR como icono principal. Para configurarlo, establezca la opción TDF_USE_HICON_MAIN en el constructor o en el método CTaskDialog::SetOptions. De forma predeterminada, el objeto CTaskDialog está configurado para usar LPCWSTR como tipo de entrada para el icono principal. Este método genera una excepción si se intenta establecer el icono con un tipo incorrecto.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetMainInstruction

Actualiza la instrucción principal del objeto CTaskDialog.

void SetMainInstruction(const CString& strInstructions);

Parámetros

strInstructions
[in] Nueva instrucción principal.

Comentarios

La instrucción principal de la clase CTaskDialog es el texto que se muestra al usuario en una fuente en negrita grande. Se encuentra en el cuadro de diálogo debajo de la barra de título.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetOptions

Configura las opciones del objeto CTaskDialog.

void SetOptions(int nOptionFlag);

Parámetros

nOptionFlag
[in] Conjunto de marcas que se van a usar para el objeto CTaskDialog.

Comentarios

Este método borra todas las opciones actuales del objeto CTaskDialog. Para conservar las opciones actuales, primero debe recuperarlas con CTaskDialog::GetOptions y combinarlas con las opciones que quiere establecer.

En la tabla siguiente se enumeran todas las opciones válidas.

Nombre Descripción
TDF_ENABLE_HYPERLINKS Habilita los hipervínculos en el objeto CTaskDialog.
TDF_USE_HICON_MAIN Configura el objeto CTaskDialog de modo que use HICON para el icono principal. La alternativa es usar LPCWSTR.
TDF_USE_HICON_FOOTER Configura el objeto CTaskDialog de modo que use HICON para el icono de pie de página. La alternativa es usar LPCWSTR.
TDF_ALLOW_DIALOG_CANCELLATION Permite al usuario cerrar el objeto CTaskDialog mediante el teclado o el icono de la esquina superior derecha del cuadro de diálogo, incluso si el botón Cancelar no está habilitado. Si no se establece esta marca y el botón Cancelar no está habilitado, el usuario no puede cerrar el cuadro de diálogo mediante Alt+F4, la tecla Escape o el botón Cerrar de la barra de título.
TDF_USE_COMMAND_LINKS Configura el objeto CTaskDialog de modo que use controles de botón de comando.
TDF_USE_COMMAND_LINKS_NO_ICON Configura el objeto CTaskDialog de modo que use controles de botón de comando sin mostrar un icono junto al control. TDF_USE_COMMAND_LINKS invalida TDF_USE_COMMAND_LINKS_NO_ICON.
TDF_EXPAND_FOOTER_AREA Indica que el área de expansión está expandida actualmente.
TDF_EXPANDED_BY_DEFAULT Determina si el área de expansión se expande de forma predeterminada.
TDF_VERIFICATION_FLAG_CHECKED Indica que la casilla de verificación está activada actualmente.
TDF_SHOW_PROGRESS_BAR Configura el objeto CTaskDialog de modo que muestre una barra de progreso.
TDF_SHOW_MARQUEE_PROGRESS_BAR Configura la barra de progreso para que sea una barra de progreso de marquesina. Si habilita esta opción, debe establecer TDF_SHOW_PROGRESS_BAR de modo que tenga el comportamiento esperado.
TDF_CALLBACK_TIMER Indica que el intervalo de devolución de llamada del objeto CTaskDialog se establece en aproximadamente 200 milisegundos.
TDF_POSITION_RELATIVE_TO_WINDOW Configura el objeto CTaskDialog de modo que centre en relación con la ventana primaria. Si esta marca no está habilitada, el objeto CTaskDialog se centra en relación con el monitor.
TDF_RTL_LAYOUT Configura el objeto CTaskDialog para un diseño de lectura de derecha a izquierda.
TDF_NO_DEFAULT_RADIO_BUTTON Indica que no se selecciona ningún botón de radio cuando aparece el objeto CTaskDialog.
TDF_CAN_BE_MINIMIZED Permite al usuario minimizar el objeto CTaskDialog. Para admitir esta opción, el objeto CTaskDialog no puede ser modal. MFC no admite esta opción porque MFC no admite los objetos CTaskDialog no modales.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetProgressBarMarquee

Configura una barra de marquesina para el objeto CTaskDialog y la agrega al cuadro de diálogo.

void SetProgressBarMarquee(
    BOOL bEnabled = TRUE,
    int nMarqueeSpeed = 0);

Parámetros

bEnabled
[in] TRUE para habilitar la barra de marquesina; FALSE para deshabilitar la barra de marquesina y quitarla del objeto CTaskDialog.

nMarqueeSpeed
[in] Entero que indica la velocidad de la barra de marquesina.

Comentarios

La barra de marquesina aparece debajo del texto principal de la clase CTaskDialog.

Use nMarqueeSpeed para establecer la velocidad de la barra de marquesina; los valores más grandes indican una velocidad más lenta. Un valor de 0 para nMarqueeSpeed hace que la barra de marquesina se mueva a la velocidad predeterminada para Windows.

Este método produce una excepción con la macro ENSURE si nMarqueeSpeed es menor que 0.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetProgressBarPosition

Ajusta la posición de la barra de progreso.

void SetProgressBarPosition(int nProgressPos);

Parámetros

nProgressPos
[in] Posición de la barra de progreso.

Comentarios

Este método produce una excepción con la macro ENSURE si nProgressPos no está en el intervalo de la barra de progreso. Se puede cambiar el intervalo de la barra de progreso con CTaskDialog::SetProgressBarRange.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetProgressBarRange

Ajusta el intervalo de la barra de progreso.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

Parámetros

nRangeMin
[in] Límite inferior de la barra de progreso.

nRangeMax
[in] Límite superior de la barra de progreso.

Comentarios

La posición de la barra de progreso es relativa a nRangeMin y nRangeMax. Por ejemplo, si nRangeMin es 50 y nRangeMax es 100, una posición de 75 está en la mitad de la barra de progreso. Use CTaskDialog::SetProgressBarPosition para establecer la posición de la barra de progreso.

Para mostrar la barra de progreso, la opción TDF_SHOW_PROGRESS_BAR debe estar habilitada y TDF_SHOW_MARQUEE_PROGRESS_BAR no debe estar habilitada. Este método establece automáticamente TDF_SHOW_PROGRESS_BAR y borra TDF_SHOW_MARQUEE_PROGRESS_BAR. Use CTaskDialog::SetOptions para cambiar manualmente las opciones de esta instancia de la clase CTaskDialog.

Este método produce una excepción con la macro ENSURE si nRangeMin no es menor que nRangeMax. Este método también produce una excepción si el objeto CTaskDialog ya se muestra y tiene una barra de progreso de marquesina.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetProgressBarState

Establece el estado de la barra de progreso y lo muestra en el objeto CTaskDialog.

void SetProgressBarState(int nState = PBST_NORMAL);

Parámetros

nState
[in] Estado de la barra de progreso. Vaya a la sección Comentarios para consultar los valores posibles.

Comentarios

Este método produce una excepción con la macro ENSURE si el objeto CTaskDialog ya se muestra y tiene una barra de progreso de marquesina.

En la siguiente tabla se muestran los posibles valores para nState. En todos estos casos, la barra de progreso se rellenará con el color normal hasta que alcance la posición de parada designada. En ese momento cambiará el color en función del estado.

Nombre Descripción
PBST_NORMAL Una vez que se ha rellenado la barra de progreso, el objeto CTaskDialog no cambia el color de la barra. De forma predeterminada, el color normal es verde.
PBST_ERROR Una vez que se ha rellenado la barra de progreso, el objeto CTaskDialog cambia el color de la barra al color de error. De manera predeterminada, es el color rojo.
PBST_PAUSED Una vez que se ha rellenado la barra de progreso, el objeto CTaskDialog cambia el color de la barra al color de pausa. De forma predeterminada, es el color amarillo.

Puede establecer dónde se detiene la barra de progreso con CTaskDialog::SetProgressBarPosition.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetRadioButtonOptions

Habilita o deshabilita un botón de radio.

void SetRadioButtonOptions(
    int nRadioButtonID,
    BOOL bEnabled);

Parámetros

nRadioButtonID
[in] Identificador del control de botón de radio.

bEnabled
[in] TRUE para habilitar el botón de radio; FALSE para deshabilitarlo.

Comentarios

Este método produce una excepción con la macro ENSURE si nRadioButtonID no es un identificador válido para un botón de radio.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::SetVerificationCheckbox

Establece el estado activado de la casilla de verificación.

void SetVerificationCheckbox(BOOL bChecked);

Parámetros

bChecked
[in] TRUE para que la casilla de verificación esté activada cuando se muestre el objeto CTaskDialog; FALSE para que la casilla de verificación esté desactivada cuando se muestre el objeto CTaskDialog.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog::SetVerificationCheckboxText

Establece el texto que se muestra a la derecha de la casilla de verificación.

void SetVerificationCheckboxText(CString& strVerificationText);

Parámetros

strVerificationText
[in] Texto que este método muestra junto a la casilla de verificación.

Comentarios

Este método produce una excepción con la macro ENSURE si esta instancia de la clase CTaskDialog ya se muestra.

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog::SetWindowTitle

Establece el título del objeto CTaskDialog.

void SetWindowTitle(CString& strWindowTitle);

Parámetros

strWindowTitle
[in] Nuevo título del objeto CTaskDialog.

Comentarios

Ejemplo

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::ShowDialog

Crea y muestra un objeto CTaskDialog.

static INT_PTR ShowDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons = TDCBF_YES_BUTTON | TDCBF_NO_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

Parámetros

strContent
[in] Cadena que se va a usar para el contenido del objeto CTaskDialog.

strMainInstruction
[in] Instrucción principal del objeto CTaskDialog.

strTitle
[in] Título del objeto CTaskDialog.

nIDCommandControlsFirst
[in] Identificador de cadena del primer comando.

nIDCommandControlsLast
[in] Identificador de cadena del último comando.

nCommonButtons
[in] Máscara de los botones que se van a agregar al objeto CTaskDialog.

nTaskDialogOptions
[in] Conjunto de opciones que se van a usar para el objeto CTaskDialog.

strFooter
[in] Cadena que se va a usar como pie de página.

Valor devuelto

Entero que se corresponde con la selección que ha realizado el usuario.

Comentarios

Este método estático permite crear una instancia de la clase CTaskDialog sin crear explícitamente un objeto CTaskDialog en el código. Dado que no hay ningún objeto CTaskDialog, no se puede llamar a ningún otro método de CTaskDialog si se usa este método para mostrar un objeto CTaskDialog al usuario.

Este método crea controles de botón de comando mediante el uso de datos del archivo de recursos de la aplicación. La tabla de cadenas del archivo de recursos tiene varias cadenas con identificadores de cadena asociados. Este método agrega un control de botón de comando para cada entrada válida de la tabla de cadenas entre nIDCommandControlsFirst y nCommandControlsLast, ambos incluidos. Para estos controles de botón de comando, la cadena de la tabla de cadenas es el título del control y el identificador de cadena es el identificador del control.

Consulte CTaskDialog::SetOptions para ver una lista de opciones válidas.

El objeto CTaskDialog se cierra cuando el usuario selecciona un botón común, un control de vínculo de comando o cierra dicho objeto CTaskDialog. El valor devuelto es el identificador que indica cómo cerró el usuario el cuadro de diálogo.

Ejemplo

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog::TaskDialogCallback

El marco llama a este método en respuesta a varios mensajes de Windows.

friend:
HRESULT TaskDialogCallback(
    HWND hWnd,
    UINT uNotification,
    WPARAM wParam,
    LPARAM lParam,
    LONG_PTR dwRefData);

Parámetros

hwnd
[in] Identificador de la estructura m_hWnd del objeto CTaskDialog.

uNotification
[in] Código de notificación que especifica el mensaje generado.

wParam
[in] Más información sobre el mensaje.

lParam
[in] Más información sobre el mensaje.

dwRefData
[in] Puntero al objeto CTaskDialog al que se aplica el mensaje de devolución de llamada.

Valor devuelto

Depende del código de notificación específico. Vea la sección Comentarios para obtener más información.

Comentarios

La implementación predeterminada de TaskDialogCallback controla el mensaje específico y, luego, llama al método On adecuado de la clase CTaskDialog. Por ejemplo, en respuesta al mensaje TDN_BUTTON_CLICKED, TaskDialogCallback llama a CTaskDialog::OnCommandControlClick.

Los valores de wParam y de lParam dependen del mensaje generado específico. Es posible que uno de los valores o ambos estén vacíos. En la tabla siguiente se muestran las notificaciones predeterminadas que se admiten y qué representan los valores de wParam y de lParam. Si invalida este método en una clase derivada, debe implementar el código de devolución de llamada para cada mensaje de la tabla siguiente.

Mensaje de notificación Valor de wParam Valor de lParam
TDN_CREATED No se utiliza. No se utiliza.
TDN_NAVIGATED No se utiliza. No se utiliza.
TDN_BUTTON_CLICKED Identificador del control de botón de comando. No utilizado.
TDN_HYPERLINK_CLICKED No utilizado. Estructura LPCWSTR que contiene el vínculo.
TDN_TIMER Tiempo en milisegundos desde que se creó el objeto CTaskDialog o se restableció el temporizador. No utilizado.
TDN_DESTROYED No se utiliza. No se utiliza.
TDN_RADIO_BUTTON_CLICKED Identificador del botón de radio. No utilizado.
TDN_DIALOG_CONSTRUCTED No se utiliza. No se utiliza.
TDN_VERIFICATION_CLICKED 1 si la casilla está activada; 0 si no lo está. No utilizado.
TDN_HELP No se utiliza. No se utiliza.
TDN_EXPANDO_BUTTON_CLICKED 0 si el área de expansión está contraída; distinto de cero si se muestra el texto de expansión. No utilizado.

Consulte también

Clases
CObject (clase)
Gráfico de jerarquías
Tutorial: Agregar una clase CTaskDialog a una aplicación