Partager via


STRUCTURE TEXTMETRICA (wingdi.h)

La structure TEXTMETRIC contient des informations de base sur une police physique. Toutes les tailles sont spécifiées en unités logiques ; autrement dit, elles dépendent du mode de mappage actuel du contexte d’affichage.

Syntaxe

typedef struct tagTEXTMETRICA {
  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;
} TEXTMETRICA, *PTEXTMETRICA, *NPTEXTMETRICA, *LPTEXTMETRICA;

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 par des caractères qui ne sont pas dans la police.

tmBreakChar

Valeur du caractère qui sera utilisé pour définir des sauts de mots pour la justification du texte.

tmItalic

Spécifie une police italique si elle n’est pas nulle.

tmUnderlined

Spécifie une police soulignée si elle n’est pas nulle.

tmStruckOut

Police barré si elle n’est pas nulle.

tmPitchAndFamily

Spécifie des informations sur le pitch, la technologie et la famille d’une police physique.

Les quatre bits d’ordre inférieur de ce membre spécifient des informations sur le pitch et la technologie de la police. Une constante est définie pour chacun des quatre bits.

Constant Signification
TMPF_FIXED_PITCH Si ce bit est défini, la police est une police de pas variable. Si ce bit est clair, la police est une police de pitch fixe. Notez très soigneusement que ces significations sont à l’opposé de ce que le nom de constante implique.
TMPF_VECTOR Si ce bit est défini, la police est une police vectorielle.
TMPF_TRUETYPE Si ce bit est défini, la police est une police TrueType.
TMPF_DEVICE Si ce bit est défini, la police est une police d’appareil.
 

Une application doit tester soigneusement les qualités encodées dans ces bits de faible ordre, sans faire d’hypothèses arbitraires. Par exemple, en plus d’avoir leurs propres bits définis, les polices TrueType et PostScript définissent le TMPF_VECTOR bit. Une police bitmap monospace a tous ces bits de faible ordre clair ; une police bitmap proportionnelle définit le bit TMPF_FIXED_PITCH. Une police d’appareil d’imprimante Postscript définit les bits TMPF_DEVICE, TMPF_VECTOR et TMPF_FIXED_PITCH.

Les quatre bits d’ordre élevé de tmPitchAndFamily désignent la famille de polices de la police. Une application peut utiliser la valeur 0xF0 et l’opérateur AND au niveau du bit pour masquer les quatre bits d’ordre inférieur de tmPitchAndFamily, ce qui permet d’obtenir une valeur qui peut être directement comparée aux noms de familles de polices pour trouver une correspondance identique. Pour plus d’informations sur les familles de polices, consultez la description de la structure LOGFONT .

tmCharSet

Jeu de caractères de la police. Le jeu de caractères peut être l’une des valeurs suivantes.

  • ANSI_CHARSET
  • BALTIC_CHARSET
  • CHINESEBIG5_CHARSET
  • DEFAULT_CHARSET
  • EASTEUROPE_CHARSET
  • GB2312_CHARSET
  • GREEK_CHARSET
  • HANGUL_CHARSET
  • MAC_CHARSET
  • OEM_CHARSET
  • RUSSIAN_CHARSET
  • SHIFTJIS_CHARSET
  • SYMBOL_CHARSET
  • TURKISH_CHARSET
  • VIETNAMESE_CHARSET
Édition en coréen de Windows :
  • JOHAB_CHARSET
Édition en langue du Moyen-Orient de Windows :
  • ARABIC_CHARSET
  • HEBREW_CHARSET
Édition en langue thaï de Windows :
  • THAI_CHARSET

Remarques

Notes

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

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]
En-tête wingdi.h (inclure Windows.h)

Voir aussi

Structures de police et de texte

Vue d’ensemble des polices et du texte

GetTextExtentPoint32

GetTextMetrics

LOGFONT