Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Crée une boîte de dialogue sans mode à partir d’un modèle de boîte de dialogue en mémoire. La macro CreateDialogIndirect
Syntaxe
void CreateDialogIndirectA(
[in, optional] hInstance,
[in] lpTemplate,
[in, optional] hWndParent,
[in, optional] lpDialogFunc
);
Paramètres
[in, optional] hInstance
Type : HINSTANCE
Handle du module qui crée la boîte de dialogue.
[in] lpTemplate
Type : LPCDLGTEMPLATE
Modèle qui CreateDialogIndirect utilise pour créer la boîte de dialogue. Un modèle de boîte de dialogue se compose d’un en-tête qui décrit la boîte de dialogue, suivi d’un ou de plusieurs blocs de données supplémentaires qui décrivent chacun des contrôles de la boîte de dialogue. Le modèle peut utiliser le format standard ou le format étendu.
Dans un modèle standard, l’en-tête est une structure DLGTEMPLATE suivie de tableaux de longueur variable supplémentaires. Les données de chaque contrôle se composent d’une structure DLGITEMTEMPLATE suivie de tableaux de longueur variable supplémentaires.
Dans un modèle de boîte de dialogue étendu, l’en-tête utilise le format DLGTEMPLATEEX et les définitions de contrôle utilisent le format DLGITEMTEMPLATEEX.
Après createDialogIndirect retourne, vous pouvez libérer le modèle, qui est utilisé uniquement pour démarrer la boîte de dialogue.
[in, optional] hWndParent
Type : HWND
Handle de la fenêtre propriétaire de la boîte de dialogue.
[in, optional] lpDialogFunc
Type : DLGPROC
Pointeur vers la procédure de boîte de dialogue. Pour plus d’informations sur la procédure de boîte de dialogue, consultez DialogProc.
Valeur de retour
Aucun
Remarques
La macro CreateDialogIndirect utilise la fonction CreateWindowEx pour créer la boîte de dialogue. CreateDialogIndirect puis envoie un message WM_INITDIALOG à la procédure de boîte de dialogue. Si le modèle spécifie le style DS_SETFONT ou DS_SHELLFONT, la fonction envoie également un message WM_SETFONT à la procédure de boîte de dialogue. La fonction affiche la boîte de dialogue si le modèle spécifie le style WS_VISIBLE. Enfin, CreateDialogIndirect retourne la poignée de fenêtre dans la boîte de dialogue.
Une fois CreateDialogIndirect retourné, vous pouvez utiliser la fonction ShowWindow pour afficher la boîte de dialogue (si elle n’est pas déjà visible). Pour détruire la boîte de dialogue, utilisez la fonction DestroyWindow. Pour prendre en charge la navigation au clavier et d’autres fonctionnalités de boîte de dialogue, la boucle de message de la boîte de dialogue doit appeler la fonction IsDialogMessage.
Dans un modèle de boîte de dialogue standard, la structure DLGTEMPLATE
Dans un modèle de boîte de dialogue étendu, l’en-tête DLGTEMPLATEEX
Toutes les chaînes de caractères dans le modèle de boîte de dialogue, telles que les titres de la boîte de dialogue et les boutons, doivent être des chaînes Unicode. Utilisez la fonction MultiByteToWideChar pour générer des chaînes Unicode à partir de chaînes ANSI.
Note
L’en-tête winuser.h définit CreateDialogIndirect comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winuser.h (include Windows.h) |
bibliothèque | User32.lib |
DLL | User32.dll |
Voir aussi
conceptuelle
autres ressources
de référence