Fonction TaskDialogIndirect (commctrl.h)

La fonction TaskDialogIndirect crée, affiche et gère une boîte de dialogue de tâche. La boîte de dialogue de tâche contient des icônes définies par l’application, des messages, un titre, une zone de vérification case activée, des liens de commande, des boutons push et des cases d’option. Cette fonction peut inscrire une fonction de rappel pour recevoir des messages de notification.

Syntaxe

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

Paramètres

[in] pTaskConfig

Type : const TASKDIALOGCONFIG*

Pointeur vers une structure TASKDIALOGCONFIG qui contient les informations utilisées pour afficher la boîte de dialogue de tâche.

[out, optional] pnButton

Type : int*

Adresse d’une variable qui reçoit :

  • l’un des ID de bouton spécifiés dans le membre pButtons du paramètre pTaskConfig
  • l’une des valeurs suivantes :
Valeur Description
0 Échec de l’appel de fonction. Pour plus d’informations, reportez-vous à la valeur de retour.
IDCANCEL Le bouton Annuler a été sélectionné, la touche Alt-F4 a été enfoncée, la touche Échappement a été enfoncée ou l’utilisateur a cliqué sur le bouton fermer la fenêtre .
IDNO Aucun bouton n’a été sélectionné.
IDOK Le bouton OK a été sélectionné.
IDRETRY Le bouton Réessayer a été sélectionné.
IDYES Le bouton Oui a été sélectionné.
 

Si ce paramètre a la valeur NULL, aucune valeur n’est retournée.

[out, optional] pnRadioButton

Type : int*

Adresse d’une variable qui reçoit l’un des ID de bouton spécifiés dans le membre pRadioButtons du paramètre pTaskConfig . Si ce paramètre a la valeur NULL, aucune valeur n’est retournée.

[out, optional] pfVerificationFlagChecked

Type : BOOL*

Adresse d’une variable qui reçoit l’une des valeurs suivantes.

Valeur Description
TRUE La case à cocher de vérification a été cochée lorsque la boîte de dialogue a été ignorée.
FALSE La case à cocher de vérification n’a pas été cochée lorsque la boîte de dialogue a été ignorée.
 

Si ce paramètre a la valeur NULL, la case à cocher de vérification est désactivée.

Valeur retournée

Type : HRESULT

Cette fonction peut retourner l’une de ces valeurs.

Code de retour Description
S_OK
L’opération s’est terminée avec succès.
E_OUTOFMEMORY
La mémoire est insuffisante pour terminer l’opération.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
E_FAIL
L'opération a échoué.

Remarques

Lorsque vous utilisez une boîte de dialogue de tâche pour indiquer que le système manque de mémoire, les chaînes pointées par les différents membres de chaîne et d’icône dans la structure TASKDIALOGCONFIG ne doivent pas être extraites d’un fichier de ressources, car une tentative de chargement de la ressource peut échouer.

Si vous créez une boîte de dialogue de tâche alors qu’une boîte de dialogue est présente, utilisez un handle dans la boîte de dialogue comme paramètre hWndParent . Le paramètre hWndParent ne doit pas identifier une fenêtre enfant, telle qu’un contrôle dans une boîte de dialogue.

La fenêtre parente ne doit pas être masquée ou désactivée lorsque cette fonction est appelée.


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

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête commctrl.h (include Commctrl.h)
Bibliothèque Comctl32.lib
DLL Comctl32.dll (version 6)

Voir aussi

Boîtes de dialogue