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);
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 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 |
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
- 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. 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.
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) |