Structure DLGTEMPLATEEX

Un modèle de boîte de dialogue étendu commence par un en-tête DLGTEMPLATEEX qui décrit la boîte de dialogue et spécifie le nombre de contrôles dans la boîte de dialogue. Pour chaque contrôle d’une boîte de dialogue, un modèle de boîte de dialogue étendu a un bloc de données qui utilise le format DLGITEMTEMPLATEEX pour décrire le contrôle.

La structure DLGTEMPLATEEX n’est définie dans aucun fichier d’en-tête standard. La définition de structure est fournie ici pour expliquer le format d’un modèle étendu pour une boîte de dialogue.

Syntaxe

typedef struct {
  WORD      dlgVer;
  WORD      signature;
  DWORD     helpID;
  DWORD     exStyle;
  DWORD     style;
  WORD      cDlgItems;
  short     x;
  short     y;
  short     cx;
  short     cy;
  sz_Or_Ord menu;
  sz_Or_Ord windowClass;
  WCHAR     title[titleLen];
  WORD      pointsize;
  WORD      weight;
  BYTE      italic;
  BYTE      charset;
  WCHAR     typeface[stringLen];
} DLGTEMPLATEEX;

Membres

dlgVer

Type : WORD

Numéro de version du modèle de boîte de dialogue étendue. Ce membre doit avoir la valeur 1.

signature

Type : WORD

Indique si un modèle est un modèle de boîte de dialogue étendu. Si la signature est 0xFFFF, il s’agit d’un modèle de boîte de dialogue étendu. Dans ce cas, le membre dlgVer spécifie le numéro de version du modèle. Si la signature est une valeur autre que 0xFFFF, il s’agit d’un modèle de boîte de dialogue standard qui utilise les structures DLGTEMPLATE et DLGITEMTEMPLATE .

helpID

Type : DWORD

Identificateur de contexte d’aide pour la fenêtre de boîte de dialogue. Lorsque le système envoie un message WM_HELP , il transmet cette valeur dans le membre wContextId de la structure HELPINFO .

exStyle

Type : DWORD

Styles de fenêtre étendus. Ce membre n’est pas utilisé lors de la création de boîtes de dialogue, mais les applications qui utilisent des modèles de boîte de dialogue peuvent l’utiliser pour créer d’autres types de fenêtres. Pour obtenir la liste des valeurs, consultez Styles de fenêtre étendus.

style

Type : DWORD

Style de la boîte de dialogue. Ce membre peut être une combinaison de valeurs de style de fenêtre et de valeurs de style de boîte de dialogue.

Si le style inclut le style de boîte de dialogue DS_SETFONT ou DS_SHELLFONT , l’en-tête DLGTEMPLATEEX du modèle de boîte de dialogue étendu contient quatre membres supplémentaires ( pointize, poids, italique et police) qui décrivent la police à utiliser pour le texte dans la zone cliente et les contrôles de la boîte de dialogue. Si possible, le système crée une police en fonction des valeurs spécifiées dans ces membres. Ensuite, le système envoie un message WM_SETFONT à la boîte de dialogue et à chaque contrôle pour fournir un handle à la police.

Pour plus d’informations, consultez Polices de boîte de dialogue.

cDlgItems

Type : WORD

Nombre de contrôles dans la boîte de dialogue.

x

Type : court

Coordonnée x, en unités de boîte de dialogue, du coin supérieur gauche de la boîte de dialogue.

y

Type : court

Coordonnée y, en unités de boîte de dialogue, du coin supérieur gauche de la boîte de dialogue.

Cx

Type : court

Largeur, en unités de boîte de dialogue, de la boîte de dialogue.

cy

Type : court

Hauteur, en unités de boîte de dialogue, de la boîte de dialogue.

menu

Type : sz_Or_Ord

Tableau de longueur variable d’éléments 16 bits qui identifie une ressource de menu pour la boîte de dialogue. Si le premier élément de ce tableau est 0x0000, la boîte de dialogue n’a pas de menu et le tableau n’a pas d’autres éléments. Si le premier élément est 0xFFFF, le tableau a un élément supplémentaire qui spécifie la valeur ordinale d’une ressource de menu dans un fichier exécutable. Si le premier élément a une autre valeur, le système traite le tableau comme une chaîne Unicode terminée par null qui spécifie le nom d’une ressource de menu dans un fichier exécutable.

windowClass

Type : sz_Or_Ord

Tableau de longueur variable d’éléments 16 bits qui identifie la classe window de la boîte de dialogue. Si le premier élément du tableau est 0x0000, le système utilise la classe de boîte de dialogue prédéfinie pour la boîte de dialogue et le tableau n’a pas d’autres éléments. Si le premier élément est 0xFFFF, le tableau a un élément supplémentaire qui spécifie la valeur ordinale d’une classe de fenêtre système prédéfinie. Si le premier élément a une autre valeur, le système traite le tableau comme une chaîne Unicode terminée par null qui spécifie le nom d’une classe de fenêtre inscrite.

title

Type : WCHAR[titleLen]

Titre de la boîte de dialogue. Si le premier élément de ce tableau est 0x0000, la boîte de dialogue n’a aucun titre et le tableau n’a pas d’autres éléments.

pointsize

Type : WORD

Taille de point de la police à utiliser pour le texte de la boîte de dialogue et ses contrôles.

Ce membre est présent uniquement si le membre de style spécifie DS_SETFONT ou DS_SHELLFONT.

weight

Type : WORD

Poids de la police. Notez que, même s’il peut s’agir de l’une des valeurs répertoriées pour le membre lfWeight de la structure LOGFONT , toute valeur utilisée est automatiquement modifiée en FW_NORMAL.

Ce membre est présent uniquement si le membre de style spécifie DS_SETFONT ou DS_SHELLFONT.

italique

Type : BYTE

Indique si la police est italique. Si cette valeur est TRUE, la police est en italique.

Ce membre est présent uniquement si le membre de style spécifie DS_SETFONT ou DS_SHELLFONT.

Charset

Type : BYTE

Jeu de caractères à utiliser. Pour plus d’informations, consultez le membre lfcharset de LOGFONT.

Ce membre est présent uniquement si le membre de style spécifie DS_SETFONT ou DS_SHELLFONT.

Fonte

Type : WCHAR[stringLen]

Nom de la police de type pour la police.

Ce membre est présent uniquement si le membre de style spécifie DS_SETFONT ou DS_SHELLFONT.

Notes

Vous pouvez utiliser un modèle de boîte de dialogue étendu au lieu d’un modèle de boîte de dialogue standard dans les fonctions CreateDialogIndirectParam, DialogBoxIndirectParam, CreateDialogIndirect et DialogBoxIndirect .

Après l’en-tête DLGTEMPLATEEX dans un modèle de boîte de dialogue étendu se trouve une ou plusieurs structures DLGITEMTEMPLATEEX qui décrivent les contrôles de la boîte de dialogue. Le membre cDlgItems de la structure DLGITEMTEMPLATEEX spécifie le nombre de structures DLGITEMTEMPLATEEX qui suivent dans le modèle.

Chaque structure DLGITEMTEMPLATEEX dans le modèle doit être alignée sur une limite DWORD . Si le membre de style spécifie le style DS_SETFONT ou DS_SHELLFONT style, la première structure DLGITEMTEMPLATEEX commence sur la première limite DWORD après la chaîne de police . Si ces styles ne sont pas spécifiés, la première structure commence sur la première limite DWORD après la chaîne de titre .

Le menu, windowClass, title et les tableaux de police doivent être alignés sur les limites DE WORD .

Si vous spécifiez des chaînes de caractères dans le menu, windowClass, title et les tableaux de police , vous devez utiliser des chaînes Unicode. Utilisez la fonction MultiByteToWideChar pour générer ces chaînes Unicode à partir de chaînes ANSI.

Les membres x, y, cx et cy spécifient des valeurs dans les unités de boîte de dialogue. Vous pouvez convertir ces valeurs en unités d’écran (pixels) à l’aide de la fonction MapDialogRect .

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]

Voir aussi

Référence

CreateDialogIndirect

CreateDialogIndirectParam

DialogBoxIndirect

DialogBoxIndirectParam

DLGITEMTEMPLATEEX

MapDialogRect

WM_SETFONT

Conceptuel

Boîtes de dialogue

Autres ressources

LOGFONT

MultiByteToWideChar