Structure LOGFONTA (shtypes.h)
Définit les attributs d’une police.
Syntaxe
typedef struct tagLOGFONTA {
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;
CHAR lfFaceName[32];
} LOGFONTA;
Membres
lfHeight
Type : LONG
Spécifie la hauteur, en unités logiques, de la cellule de caractères ou du caractère de la police. La valeur de hauteur de 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 met en correspondance avec la hauteur de cellule 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 fait correspondre sa valeur absolue à la hauteur de caractères des polices disponibles. |
Pour toutes les comparaisons de hauteur, le mappeur de polices recherche la plus grande police 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);
où 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, les proportions de l’appareil sont mises 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 des abscisses du périphérique. 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 des abscisses du périphérique.
lfWeight
Type : LONG
Spécifie l'épaisseur de la police peut être comprise entre 0 et 1000. Par exemple, 400 est normal et 700 en gras. Si cette valeur est égale à zéro, une pondération par défaut est utilisée.
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 barré.
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ï |
---|
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.
Des 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 les chaînes rendues avec cette police.
Ce membre est important dans le processus de mappage des polices. Pour garantir la cohérence des résultats, spécifiez un jeu de caractères spécifique. Si vous spécifiez un nom de police dans le membre lfFaceName , assurez-vous 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 mesure dans laquelle la sortie doit correspondre à la hauteur, à la largeur, à l’orientation des caractères, à l’échappement, à la hauteur et au type de police de la police demandée. 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 polices par défaut. |
OUT_RASTER_PRECIS | Indique au mappeur de polices 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 des polices raster, vector ou TrueType sont énumérées. |
lfQuality
Type : BYTE
Spécifie la qualité de sortie. La qualité de sortie définit la façon dont le GDI doit essayer 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 anticrénel pour que ce paramètre fonctionne. |
NONANTIALIASED_QUALITY | Force l’utilisation de la qualité du brouillon lorsque la sous-clé de Registre HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing 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 pour 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 davantage de tailles de police sont disponibles, mais que 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 la hauteur et le groupe de la police. Les deux bits d’ordre inférieur spécifient la hauteur de la police et peuvent être l’une des valeurs suivantes définies dans Wingdi.h :
- DEFAULT_PITCH
- FIXED_PITCH
- MONO_FONT
- VARIABLE_PITCH
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
Les familles de polices décrivent l’apparence d’une police de manière générale. Elles sont destinées à 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, ancien anglais. |
FF_DONTCARE | Ne vous en souciez pas ou ne savez pas. |
FF_MODERN | Polices avec une largeur de trait constante (monospace), avec ou sans empattements. Les polices monospace sont généralement modernes, par exemple Pica, Elite et Courier New. |
FF_ROMAN | Polices avec une largeur de trait variable (proportionnelle) et avec des empattements, par exemple, Serif. |
FF_SCRIPT | Polices conçues pour ressembler à l’écriture manuscrite, par exemple Script et Cursive. |
FF_SWISS | Polices avec une largeur de trait variable (proportionnelle) et sans empattements, par exemple, Sans Serif. |
lfFaceName[32]
Type : TCHAR[LF_FACESIZE]
Spécifie une chaîne terminée par un caractère 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’anticrénelage ClearType :
- Le texte est affiché sur une imprimante.
- Affichage défini pour 256 couleurs ou moins.
- Le texte est affiché dans un client Terminal Server.
- 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’anticrénelage ClearType : polices de type 1, polices OpenType Postscript sans contours TrueType, polices bitmap, polices vectorielles et polices d’appareil.
- La police a ajusté les 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
En-tête | shtypes.h (inclure Shtypes.h, Dimm.h) |