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 |
---|---|
|
L’opération s’est terminée avec succès. |
|
La mémoire est insuffisante pour terminer l’opération. |
|
Un ou plusieurs arguments ne sont pas valides. |
|
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