UDF > WinAPIEx > GDI > Font & Text >


_WinAPI_CreateFont

Crée une police logique avec les caractéristiques spécifiées

#include <WinAPIGdi.au3>
_WinAPI_CreateFont ( $iHeight, $iWidth [, $iEscape = 0 [, $iOrientn = 0 [, $iWeight = $FW_NORMAL [, $bItalic = False [, $bUnderline = False [, $bStrikeout = False [, $iCharset = $DEFAULT_CHARSET [, $iOutputPrec = $OUT_DEFAULT_PRECIS [, $iClipPrec = $CLIP_DEFAULT_PRECIS [, $iQuality = $DEFAULT_QUALITY [, $iPitch = 0 [, $sFace = 'Arial']]]]]]]]]]]] )

Paramètres

$iHeight Hauteur de la police
$iWidth Largeur moyenne des caractères
$iEscape [optionnel] Angle de l'échappement
$iOrientn [optionnel] Angle d'orientation de la Ligne de base
$iWeight [optionnel] Graisse de la police, les valeurs suivantes sont définies pour plus de commodité:
$FW_DONTCARE - 0
$FW_THIN - 100
$FW_EXTRALIGHT - 200
$FW_LIGHT - 300
$FW_NORMAL - 400
$FW_MEDIUM - 500
$FW_SEMIBOLD - 600
$FW_BOLD - 700
$FW_EXTRABOLD - 800
$FW_HEAVY - 900
$bItalic [optionnel] Attribut italique
$bUnderline [optionnel] Attribut de soulignement
$bStrikeout [optionnel] Attribut barré
$iCharset [optionnel] Spécifie le jeu de caractères. Les valeurs suivantes sont prédéfinies:
$ANSI_CHARSET - 0
$BALTIC_CHARSET - 186
$CHINESEBIG5_CHARSET - 136
$DEFAULT_CHARSET - 1
$EASTEUROPE_CHARSET - 238
$GB2312_CHARSET - 134
$GREEK_CHARSET - 161
$HANGEUL_CHARSET - 129
$MAC_CHARSET - 77
$OEM_CHARSET - 255
$RUSSIAN_CHARSET - 204
$SHIFTJIS_CHARSET - 128
$SYMBOL_CHARSET - 2
$TURKISH_CHARSET - 162
$VIETNAMESE_CHARSET - 163
$iOutputPrec [optionnel] Spécifie la précision de sortie, elle peut être l'une des valeurs suivantes:
$OUT_CHARACTER_PRECIS - Non utilisé
$OUT_DEFAULT_PRECIS - Spécifie le comportement de mappage par défaut de la police
$OUT_DEVICE_PRECIS - Laisse le mappeur de polices choisir une police de périphérique lorsque le système contient plusieurs polices portant le même nom
$OUT_OUTLINE_PRECIS - Cette valeur laisse le mappeur de polices choisir entre TrueType et d'autres polices basées outline
$OUT_PS_ONLY_PRECIS - Laisse le mappeur de polices choisir les polices PostScript seulement.
S'il n'y a pas de police PostScript installée dans le système, le mappeur de police retourne un comportement par défaut
$OUT_RASTER_PRECIS - Laisse le mappeur de polices 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 police, mais elle est retournée lorsque les polices raster sont énumérées
$OUT_STROKE_PRECIS - Cette valeur n'est pas utilisée par le mappeur de police, mais elle est retournée lorsque des polices TrueType, d'autres polices outline, et des polices vectorielles sont énumérés
$OUT_TT_ONLY_PRECIS - Laisse le mappeur de polices choisir uniquement les polices TrueType. S'il n'y a pas les polices TrueType installées dans le système, le mappeur de police retourne au comportement par défaut
$OUT_TT_PRECIS - Laisse le mappeur de polices choisir une police TrueType lorsque le système contient plusieurs polices portant le même nom
$iClipPrec [optionnel] Spécifie la précision de découpe, peut prendre une ou plusieurs des valeurs suivantes:
$CLIP_CHARACTER_PRECIS - Non utilisé
$CLIP_DEFAULT_PRECIS - Indique le comportement de coupure de défaut
$CLIP_EMBEDDED - Vous devez spécifier cette option pour utiliser une police en lecture seule intégrée
$CLIP_LH_ANGLES - Lorsque cette option est utilisée, la rotation pour toutes les polices dépend de l'orientation du système de coordonnées, soit à gauche, soit à droite.
Si cette option n'est pas utilisée, les polices de périphérique tournent toujours dans le sens antihoraire, mais la rotation des autres polices dépend de l'orientation du système de coordonnées.
$CLIP_MASK - Non utilisé
$CLIP_STROKE_PRECIS - Non utilisé par le mappeur de police, mais est retourné quand les polices raster, vecteur, ou TrueType sont énumérées
Pour des raisons de compatibilité, cette valeur est toujours retournée lors de l'énumération des polices
$CLIP_TT_ALWAYS - Non utilisé
$iQuality [optionnel] Spécifie la qualité de sortie, peut prendre l'une des valeurs suivantes:
$ANTIALIASED_QUALITY - La police est anticrénelée ou lissée, si la police le prend en charge et si la taille de la police n'est pas trop petite ou trop grande.
En outre, vous devez sélectionner une police TrueType dans un écran DC avant de l'utiliser dans un DIBSection, sinon l'anticrénelage ne se produit pas
$DEFAULT_QUALITY - L'apparence de la police n'a pas d'importance
$DRAFT_QUALITY - L'apparence de la police est moins importante que lorsque la valeur de PROOF_QUALITY est utilisée.
Pour les polices raster GDI, la mise à l'échelle est désactivée, ce qui signifie que plusieurs tailles de police sont disponibles, mais la qualité peut être inférieure.
Les polices en gras, italique, souligné et barré sont synthétisées, si nécessaire
$NONANTIALIASED_QUALITY - La police n'est jamais anti-crénelé, et le lissage des polices n'est pas fait
$PROOF_QUALITY - La qualité des caractères de la police est plus importante que la coincïdence exacte des attributs de police logique.
Pour les polices raster GDI, la mise à l'échelle est désactivée et la police la plus proche en taille est choisie.
Bien que la taille de la police choisie ne peut pas être mappé exactement quand PROOF_QUALITY est utilisé, la qualité de la police est élevée et il n'y a pas de distorsion de l'apparence.
Les polices en gras, italique, souligné et barré sont synthétisées, si nécessaire
$iPitch [optionnel] Spécifie l'espacement et la famille de la police. Les deux bits de poids faible indiquent l'espacement de la police et peut prendre l'une des valeurs suivantes:
$DEFAULT_PITCH, $FIXED_PITCH, $VARIABLE_PITCH
Les quatre bits de poids fort spécifient la famille de police et peut prendre l'une des valeurs suivantes:
$FF_DECORATIVE - Nouvelles polices. Old English est un exemple
$FF_DONTCARE - Utilise la police par défaut
$FF_MODERN - Polices avec largeur de trait constante, avec ou sans empattements. Pica, Elite, et Courier New sont des exemples
$FF_ROMAN - Polices avec largeur du trait variable et avec empattements. MS Serif est un exemple
$FF_SCRIPT - Polices conçu pour ressembler à l'écriture. Script et Cursive sont des exemples
$FF_SWISS - Polices avec largeur du trait variable et sans empattements. MS Sans Serif est un exemple
$sFace [optionnel] Nom de la police

Valeur de retour

Succès: Retourne le handle de la police logique
Échec: Retourne 0

Remarques

Lorsque vous n'avez plus besoin de la police, appelez la fonction _WinAPI_DeleteObject() pour la supprimer

Les constantes ci-dessus sont définies dans FontConstants.au3

Voir aussi

Consultez CreateFont dans la librairie MSDN.

Exemple

#include <FontConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>

Global $g_tRECT, $g_hFont, $g_hOldFont, $g_hDC

HotKeySet("{ESC}", "_Exit")

$g_tRECT = DllStructCreate($tagRect)
DllStructSetData($g_tRECT, "Left", 5)
DllStructSetData($g_tRECT, "Top", 5)
DllStructSetData($g_tRECT, "Right", 250)
DllStructSetData($g_tRECT, "Bottom", 50)

$g_hDC = _WinAPI_GetDC(0)
$g_hFont = _WinAPI_CreateFont(50, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, _
        $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Arial')
$g_hOldFont = _WinAPI_SelectObject($g_hDC, $g_hFont)

_WinAPI_SetTextColor($g_hDC, 0x0000FF)
_WinAPI_SetBkColor($g_hDC, 0x000000)
; Commentez la ligne suivante pour obtenir un fond noir au lieu d'un transparent
_WinAPI_SetBkMode($g_hDC, $TRANSPARENT)

While $g_tRECT > 0
    _WinAPI_DrawText($g_hDC, "Hello world!", $g_tRECT, $DT_CENTER)
    Sleep(100)
WEnd

Func _Exit()
    _WinAPI_SelectObject($g_hDC, $g_hOldFont)
    _WinAPI_DeleteObject($g_hFont)
    _WinAPI_ReleaseDC(0, $g_hDC)
    _WinAPI_InvalidateRect(0, 0)
    $g_tRECT = 0
EndFunc   ;==>_Exit