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 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 polices 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 fait correspondre à la hauteur de cellule des polices disponibles. |
0 | Le mappeur de polices 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 police 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, le rapport d’aspect de l’appareil est mis en correspondance avec le rapport d’aspect 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 plus de commodité.
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 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 , assurez-vous que la valeur lfCharSet correspond au jeu de caractères de la police de type spécifiée dans lfFaceName.
lfOutPrecision
Type : BYTE
Spécifie la précision de sortie. La précision de sortie définit à quel point la sortie doit correspondre à la hauteur, à la largeur, à l’orientation des caractères, à l’échappement, au pitch 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 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 du découpage définit comment découper des caractères qui se trouvent 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 manière avec laquelle le GDI 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 anti-attirail pour que ce paramètre fonctionne. |
NONANTIALIASED_QUALITY | Force l’utilisation de la qualité 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 le pitch 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 de type 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, l’ancien anglais. |
FF_DONTCARE | Ne vous en souciez pas ou ne savez pas. |
FF_MODERN | Polices à 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 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 polices 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.
- Ensemble d’affichage pour 256 couleurs ou moins.
- Le texte est rendu 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’antialiasing ClearType : polices de type 1, polices OpenType Postscript 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 couramment dans les polices d’Asie de l’Est.
Notes
L’en-tête shtypes.h définit LOGFONT en tant qu’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. La combinaison 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 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) |