Partager via


Structure LOGFONTW (shtypes.h)

Définit les attributs d’une police.

Syntaxe

typedef struct tagLOGFONTW {
  LONG  lfHeight;
  LONG  lfWidth;
  LONG  lfEscapement;
  LONG  lfOrientation;
  LONG  lfWeight;
  BYTE  lfItalic;
  BYTE  lfUnderline;
  BYTE  lfStrikeOut;
  BYTE  lfCharSet;
  BYTE  lfOutPrecision;
  BYTE  lfClipPrecision;
  BYTE  lfQuality;
  BYTE  lfPitchAndFamily;
  WCHAR lfFaceName[32];
} LOGFONTW;

Membres

lfHeight

Type : long

Spécifie la hauteur, en unités logiques, de la cellule ou du caractère de la police. La valeur de hauteur du caractère (également appelée hauteur em) est la valeur de hauteur de cellule de caractère moins la valeur de début interne. Le mappeur de police interprète la valeur spécifiée dans lfHeight de la manière suivante.

Valeur Description
> 0 Le mappeur de police transforme cette valeur en unités d’appareil et la correspond à la hauteur des cellules des polices disponibles.
0 Le mappeur de police utilise une valeur de hauteur par défaut lorsqu’il recherche une correspondance.
< 0 Le mappeur de police transforme cette valeur en unités d’appareil et correspond à sa valeur absolue par rapport à la hauteur des polices disponibles.
 

Pour toutes les comparaisons de hauteur, le mappeur de police recherche la police la plus grande qui ne dépasse pas la taille demandée.

Ce mappage se produit lorsque la police est utilisée pour la première fois.

Pour le mode de mappage MM_TEXT, vous pouvez utiliser la formule suivante pour spécifier une hauteur pour une police avec une taille de point donnée.

lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

MulDiv est défini comme suit :

#define MulDiv(a,b,c)    (((a)*(b))/(c))

lfWidth

Type : long

Spécifie la largeur moyenne, en unités logiques, des caractères de la police. Si lfWidth n’est pas égal à zéro, le ratio d’aspect de l’appareil est mis en correspondance avec les proportions de numérisation des polices disponibles pour trouver la correspondance la plus proche, déterminée par la valeur absolue de la différence.

lfEscapement

Type : long

Spécifie l’angle, en dixièmes de degrés, entre le vecteur d’échappement et l’axe x de l’appareil. Le vecteur d’échappement est parallèle à la ligne de base d’une ligne de texte.

Le membre lfEscapement spécifie à la fois l’échappement et l’orientation. Vous devez définir lfEscapement et lfOrientation sur la même valeur.

lfOrientation

Type : long

Spécifie l’angle, en dixièmes de degrés, entre la ligne de base de chaque caractère et l’axe x de l’appareil.

lfWeight

Type : long

Spécifie le poids de la police comprise entre 0 et 1 000. Par exemple, 400 est normal et 700 est en gras. Si cette valeur est égale à zéro, un poids par défaut est utilisé.

Les valeurs suivantes sont définies dans Wingdi.h pour des raisons pratiques.

Valeur Poids
FW_DONTCARE 0
FW_THIN 100
FW_EXTRALIGHT 200
FW_ULTRALIGHT 200
FW_LIGHT 300
FW_NORMAL 400
FW_REGULAR 400
FW_MEDIUM 500
FW_SEMIBOLD 600
FW_DEMIBOLD 600
FW_BOLD 700
FW_EXTRABOLD 800
FW_ULTRABOLD 800
FW_HEAVY 900
FW_BLACK 900

lfItalic

Type : BYTE

TRUE pour spécifier une police italique.

lfUnderline

Type : BYTE

TRUE pour spécifier une police soulignée.

lfStrikeOut

Type : BYTE

TRUE pour spécifier une police de grève.

lfCharSet

Type : BYTE

Spécifie le jeu de caractères. Les valeurs suivantes sont prédéfinies :

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
 
Windows coréen
JOHAB_CHARSET
 
Middle-Eastern Windows
HEBREW_CHARSET
ARABIC_CHARSET
 
Windows thaïlandais
THAI_CHARSET
 

La valeur OEM_CHARSET spécifie un jeu de caractères dépendant du système d’exploitation.

DEFAULT_CHARSET est défini sur une valeur basée sur les paramètres régionaux système actuels. Par exemple, lorsque les paramètres régionaux système sont anglais (États-Unis), la valeur est ANSI_CHARSET.

Les polices avec d’autres jeux de caractères peuvent exister dans le système d’exploitation. Si une application utilise une police avec un jeu de caractères inconnu, elle ne doit pas tenter de traduire ou d’interpréter des chaînes rendues avec cette police.

Ce membre est important dans le processus de mappage de police. Pour garantir des résultats cohérents, spécifiez un jeu de caractères spécifique. Si vous spécifiez un nom de police dans le membre lfFaceName, vérifiez que la valeur lfCharSet correspond au jeu de caractères de la police spécifiée dans lfFaceName.

lfOutPrecision

Type : BYTE

Spécifie la précision de sortie. La précision de sortie définit la précision de la sortie qui doit correspondre à la hauteur, à la largeur, à l’orientation du caractère, à l’échappement, au pitch et au type de police demandés. Il peut s’agir de l’une des valeurs suivantes définies dans Wingdi.h :

Valeur Description
OUT_DEFAULT_PRECIS Spécifie le comportement du mappeur de police par défaut.
OUT_RASTER_PRECIS Indique au mappeur de police de choisir une police raster lorsque le système contient plusieurs polices portant le même nom.
OUT_STRING_PRECIS Cette valeur n’est pas utilisée par le mappeur de polices, mais elle est retournée lorsque les polices raster sont énumérées.

lfClipPrecision

Type : BYTE

Spécifie la précision de découpage. La précision de découpage définit comment découper des caractères partiellement en dehors de la zone de découpage. Il peut s’agir d’une ou plusieurs des valeurs suivantes définies dans Wingdi.h :

Valeur Description
CLIP_DEFAULT_PRECIS Spécifie le comportement de découpage par défaut.
CLIP_CHARACTER_PRECIS Non utilisé.
CLIP_STROKE_PRECIS Non utilisé par le mappeur de polices, mais est retourné lorsque les polices raster, vector ou TrueType sont énumérées.

lfQuality

Type : BYTE

Spécifie la qualité de sortie. La qualité de sortie définit avec soin le GDI qui doit tenter de faire correspondre les attributs de police logique à ceux d’une police physique réelle. Il peut s’agir de l’une des valeurs suivantes définies dans Wingdi.h :

Valeur Description
ANTIALIASED_QUALITY Active l’anticrénelage pour la police. Le pilote d’affichage doit prendre en charge le texte antialiased pour que ce paramètre fonctionne.
NONANTIALIASED_QUALITY Force l’utilisation de la qualité brouillon lorsque la sous-clé de registresystème HKEY_LOCAL_MACHINE\System\GDIFontsmoothing registre est présente.
CLEARTYPE_COMPAT_QUALITY Active le texte ClearType pour la police à l’aide de largeurs compatibles. Une largeur compatible produit du texte qui a le même espacement que le texte non ClearType.
CLEARTYPE_QUALITY Active le texte ClearType de la police. Le pilote d’affichage doit prendre en charge le texte ClearType pour que ce paramètre fonctionne.
DEFAULT_QUALITY L’apparence de la police n’a pas d’importance.
DRAFT_QUALITY Pour les polices raster GDI, la mise à l’échelle est activée, ce qui signifie que plus de tailles de police sont disponibles, mais la qualité peut être inférieure. Les polices gras, italiques, soulignées et barrés sont synthétisées si nécessaire.

lfPitchAndFamily

Type : BYTE

Spécifie le pitch et le groupe de la police. Les deux bits de bas ordre spécifient l’emplacement de la police et peuvent être l’une des valeurs suivantes définies dans Wingdi.h :

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
Les bits 4 à 7 du membre spécifient le groupe de polices et peuvent être l’une des valeurs suivantes définies dans Wingdi.h :
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
La valeur appropriée peut être obtenue à l’aide de l’opérateur OR booléen pour joindre une constante pitch à une constante de famille.

Les familles de polices décrivent l’apparence d’une police de manière générale. Ils sont destinés à spécifier des polices lorsque la police exacte souhaitée n’est pas disponible. Les valeurs des familles de polices sont les suivantes :

Valeur Description
FF_DECORATIVE Polices de nouveauté, par exemple, Old English.
FF_DONTCARE Ne vous souciez pas ou ne savez pas.
FF_MODERN Polices avec largeur de trait constante (monospace), avec ou sans serifs. Les polices Monospace sont généralement modernes, par exemple Pica, Elite et Courier New.
FF_ROMAN Polices avec largeur de trait variable (proportionnelle) et avec des serifs, par exemple, Serif.
FF_SCRIPT Les polices conçues pour ressembler à l’écriture manuscrite, par exemple Script et Cursive.
FF_SWISS Polices avec largeur de trait variable (proportionnelle) et sans serifs, par exemple Sans Serif.

lfFaceName[32]

Type : TCHAR[LF_FACESIZE]

Spécifie une chaîne terminée par null qui spécifie le nom de police de la police. La longueur de cette chaîne ne doit pas dépasser 32 caractères, y compris le caractère null de fin. La fonction EnumFontFamilies peut être utilisée pour énumérer les noms de police de toutes les polices actuellement disponibles. Si lfFaceName est une chaîne vide, GDI utilise la première police qui correspond aux autres attributs spécifiés.

Remarques

Les situations suivantes ne prennent pas en charge l’antialiasing ClearType :

  • Le texte est affiché sur une imprimante.
  • Affichage défini pour 256 couleurs ou moins.
  • Le texte est rendu sur un client de serveur terminal.
  • La police n’est pas une police TrueType ou une police Microsoft OpenType avec des contours TrueType. Par exemple, les éléments suivants ne prennent pas en charge l’antialiasing ClearType : polices type 1, polices Postscript OpenType sans contours TrueType, polices bitmap, polices vectorielles et polices d’appareil.
  • La police a paramétré des bitmaps incorporées, pour toutes les tailles de police qui contiennent les bitmaps incorporées. Par exemple, cela se produit généralement dans les polices d’Asie de l’Est.
Cette structure est d’abord apparue dans Shtypes.idl et Shtypes.h dans Windows Vista, pour faciliter l’utilisation avec les membres de l’interface IVisualProperties. Toutefois, la structure identique est définie dans Wingdi.h et Windows.h dans les versions antérieures de Windows.

Note

L’en-tête shtypes.h définit LOGFONT 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 Vista [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2008 [applications de bureau uniquement]
d’en-tête shtypes.h (include Shtypes.h, Dimm.h)

Voir aussi

IVisualProperties ::GetFont

IVisualProperties ::SetFont