STRUCTURE NEWTEXTMETRICA (wingdi.h)

La structure NEWTEXTMETRIC contient des données qui décrivent une police physique.

Syntaxe

typedef struct tagNEWTEXTMETRICA {
  LONG  tmHeight;
  LONG  tmAscent;
  LONG  tmDescent;
  LONG  tmInternalLeading;
  LONG  tmExternalLeading;
  LONG  tmAveCharWidth;
  LONG  tmMaxCharWidth;
  LONG  tmWeight;
  LONG  tmOverhang;
  LONG  tmDigitizedAspectX;
  LONG  tmDigitizedAspectY;
  BYTE  tmFirstChar;
  BYTE  tmLastChar;
  BYTE  tmDefaultChar;
  BYTE  tmBreakChar;
  BYTE  tmItalic;
  BYTE  tmUnderlined;
  BYTE  tmStruckOut;
  BYTE  tmPitchAndFamily;
  BYTE  tmCharSet;
  DWORD ntmFlags;
  UINT  ntmSizeEM;
  UINT  ntmCellHeight;
  UINT  ntmAvgWidth;
} NEWTEXTMETRICA, *PNEWTEXTMETRICA, *NPNEWTEXTMETRICA, *LPNEWTEXTMETRICA;

Membres

tmHeight

Hauteur (montée + descente) des caractères.

tmAscent

Ascension (unités au-dessus de la ligne de base) des caractères.

tmDescent

Descente (unités sous la ligne de base) de caractères.

tmInternalLeading

Quantité de début (espace) à l’intérieur des limites définies par le membre tmHeight . Des marques d’accentuation et d’autres caractères diacritiques peuvent se produire dans cette zone. Le concepteur peut définir ce membre sur zéro.

tmExternalLeading

Quantité de début supplémentaire (espace) que l’application ajoute entre les lignes. Étant donné que cette zone se trouve en dehors de la police, elle ne contient aucune marque et n’est pas modifiée par les appels de sortie de texte en mode OPAQUE ou TRANSPARENT. Le concepteur peut définir ce membre sur zéro.

tmAveCharWidth

Largeur moyenne des caractères dans la police (généralement définie comme la largeur de la lettre x). Cette valeur n’inclut pas le surplomb requis pour les caractères gras ou italiques.

tmMaxCharWidth

La largeur du caractère le plus large de la police.

tmWeight

Poids de la police.

tmOverhang

Largeur supplémentaire par chaîne qui peut être ajoutée à certaines polices synthétisées. Lors de la synthèse de certains attributs, tels que l’gras ou l’italique, l’interface de périphérique graphique (GDI) ou un appareil peut devoir ajouter de la largeur à une chaîne à la fois par caractère et par chaîne. Par exemple, GDI met une chaîne en gras en développant l’espacement de chaque caractère et en remplaçant par une valeur de décalage ; il italique une police en cisaillement de la chaîne. Dans les deux cas, il y a un surplomb au-delà de la chaîne de base. Pour les chaînes en gras, le surplomb est la distance à laquelle le surstrike est décalé. Pour les chaînes italiques, le surplomb correspond à la quantité que le haut de la police est ciselé au-delà du bas de la police.

Le membre tmOverhang permet à l’application de déterminer la quantité de la largeur de caractères retournée par un appel de fonction GetTextExtentPoint32 sur un caractère unique est la largeur réelle des caractères et la quantité de largeur supplémentaire par chaîne. La largeur réelle est l’étendue moins le surplomb.

tmDigitizedAspectX

Aspect horizontal du périphérique pour lequel la police a été conçue.

tmDigitizedAspectY

Aspect vertical du périphérique pour lequel la police a été conçue. Le ratio des membres tmDigitizedAspectX et tmDigitizedAspectY est le rapport d’aspect de l’appareil pour lequel la police a été conçue.

tmFirstChar

Valeur du premier caractère défini dans la police.

tmLastChar

Valeur du dernier caractère défini dans la police.

tmDefaultChar

Valeur du caractère à remplacer pour les caractères qui ne figurent pas dans la police.

tmBreakChar

Valeur du caractère à utiliser pour définir des sauts de mots pour la justification du texte.

tmItalic

Police italique si elle n’est pas nulle.

tmUnderlined

Police soulignée si elle n’est pas nulle.

tmStruckOut

Police barré si elle n’est pas nulle.

tmPitchAndFamily

Pitch et famille de la police sélectionnée. Le bit d’ordre inférieur (bit 0) spécifie le pitch de la police. Si elle a la valeur 1, la police est de type pitch variable (ou proportionnelle). S’il est 0, la police est un pitch fixe (ou monospace). Les bits 1 et 2 spécifient le type de police. Si les deux bits ont la valeur 0, la police est une police raster ; si le bit 1 est 1 et le bit 2 est 0, la police est une police vectorielle ; si le bit 1 est 0 et le bit 2 est défini, ou si les deux bits ont la valeur 1, la police est d’un autre type. Le bit 3 est 1 si la police est une police d’appareil ; sinon, c’est 0.

Les quatre bits d’ordre élevé désignent la famille de polices. Le membre tmPitchAndFamily peut être combiné avec la valeur hexadécimale 0xF0 à l’aide de l’opérateur AND au niveau du bit et peut ensuite être comparé aux noms de la famille de polices pour une correspondance identique. Pour plus d’informations sur les familles de polices, consultez LOGFONT.

tmCharSet

Jeu de caractères de la police.

ntmFlags

Spécifie si la police est italique, soulignée, soulignée, en gras, etc. Il peut s’agir de toute combinaison raisonnable des valeurs suivantes.

bit Nom Signification
0 NTM_ITALIC italique
5 NTM_BOLD gras
8 NTM_REGULAR regular
16 NTM_NONNEGATIVE_AC aucun glyphe d’une police à n’importe quelle taille n’a un espace A ou C négatif.
17 NTM_PS_OPENTYPE Police OpenType PostScript
18 NTM_TT_OPENTYPE Police OpenType TrueType
19 NTM_MULTIPLEMASTER police master multiples
20 NTM_TYPE1 Police de type 1
21 NTM_DSIG police avec une signature numérique. Cela permet la traçabilité et garantit que la police a été testée et qu’elle n’est pas endommagée

ntmSizeEM

Taille du carré em pour la police. Cette valeur est en unités théoriques (c’est-à-dire les unités pour lesquelles la police a été conçue).

ntmCellHeight

Hauteur, en unités théoriques, de la police. Cette valeur doit être comparée à la valeur du membre ntmSizeEM .

ntmAvgWidth

Largeur moyenne des caractères de la police, en unités théoriques. Cette valeur doit être comparée à la valeur du membre ntmSizeEM .

Remarques

Les quatre derniers membres de la structure NEWTEXTMETRIC ne sont pas inclus dans la structure TEXTMETRIC ; à tous les autres égards, les structures sont identiques.

Les tailles de la structure NEWTEXTMETRIC sont généralement spécifiées en unités logiques ; autrement dit, elles dépendent du mode de mappage actuel du contexte d’affichage.

Notes

L’en-tête wingdi.h définit NEWTEXTMETRIC comme un 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.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête wingdi.h (inclure Windows.h)

Voir aussi

EnumFontFamilies

Structures de police et de texte

Vue d’ensemble des polices et du texte

GetTextExtentPoint32

GetTextMetrics

LOGFONT