创建一个带有指定字符的逻辑字体,注:characteristics有字符的意思也有特性的意思(可能翻译错误).
#Include <WinAPI.au3>
_WinAPI_CreateFont($nHeight, $nWidth[, $nEscape = 0 [, $nOrientn = 0 [, $fnWeight = $FW_NORMAL [, $bItalic = False[, $bUnderline = False [, $bStrikeout = False [, $nCharset = $DEFAULT_CHARSET [, $nOutputPrec = $OUT_DEFAULT_PRECIS [, $nClipPrec = $CLIP_DEFAULT_PRECIS [, $nQuality = $DEFAULT_QUALITY [, $nPitch = 0 [, $szFace = 'Arial']]]]]]]]]]]])
$nHeight | 字体高度 |
$nWidth | 字符(特性)平均宽度 |
$nEscape | [可选参数] 夹角 |
$nOrientn | [可选参数] 基线方向角 |
$fnWeight | [可选参数] 字体重度(weight), 下方是预定义的值: $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 | [可选参数] 是否是斜体 |
$bUnderline | [可选参数] 是否带有下划线 |
$bStrikeout | [可选参数] 是否带有删除线(strikeout) |
$nCharset | [可选参数] 指定字符集. 可以使用下方预定义的值: $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 |
$nOutputPrec | [可选参数] 指定输出精确度, 可以是下方的一个值: $OUT_CHARACTER_PRECIS - 未使用 $OUT_DEFAULT_PRECIS - 默认字体映射表状态 $OUT_DEVICE_PRECIS - 当系统包含多个相同名称的字体时,字体映射表选择设备字体 $OUT_OUTLINE_PRECIS - Windows 2000/XP: 字体映射表选择 TrueType 和其他轮廓字体 $OUT_PS_ONLY_PRECIS - Windows 2000/XP: 字体映射表只选择 PostScript 字体. 如果系统中没有 PostScript 字体,则字体映射表返回到默认状态 $OUT_RASTER_PRECIS - 当系统包含多个相同名称字体时,字体映射表选择光栅字体 $OUT_STRING_PRECIS - 不使用的字体映射表,但它返回光栅字体枚举 $OUT_STROKE_PRECIS - Windows 2000/XP: 不使用的字体映射表, 但它返回 TrueType,其他轮廓字体,和矢量字体得枚举 $OUT_TT_ONLY_PRECIS - 字体映射表选择只 TrueType 字体. 如果系统中没有 TrueType 字体,字体映射表返回到默认状态 $OUT_TT_PRECIS - 当系统包含多个相同名称的字体时,字体映射表选择 TrueType 字体 |
$nClipPrec | [可选参数] 指定切边精确度, 可以是下方一个或多个值: $CLIP_CHARACTER_PRECIS - 未使用 $CLIP_DEFAULT_PRECIS - 默认裁剪状态 $CLIP_EMBEDDED - 使用嵌入式只读字体 $CLIP_LH_ANGLES - 字体旋转取决是否坐标系统的左手或右手方向. 如果不使用此值,设备字体总是逆时针方向转动,但其他字体的旋转由坐标系方向而定. $CLIP_MASK - 未使用 $CLIP_STROKE_PRECIS - 不使用字体映射表,但返回光栅,矢量,或 TrueType 字体枚举 Windows 2000/XP: 出于兼容性,此值总是返回枚举字体 $CLIP_TT_ALWAYS - 未使用 |
$nQuality | [可选参数] 输出质量.可以是以下值之一: $ANTIALIASED_QUALITY - Windows 2000 与更高版: 如果支持的字体尺寸不是太小或太大,字体抗锯齿,或平滑 此外,在进入屏幕 DC 之前,使用 DIBSection 选择 TrueType 字体,否则不会发生抗锯齿效果 $DEFAULT_QUALITY - 不注重字体的外观 $DRAFT_QUALITY - 使用 PROOF_QUALITY 值时,字体的外观很重要. 对于 GDI 的光栅字体,启用缩放,这意味着较大的字体大小都可用,但质量可能比较低. 如有必要,可以综合使用粗体,斜体,下划线和删除线字体 $NONANTIALIASED_QUALITY - Windows 2000 与更高版: 字体没有抗锯齿,即不做字体平滑 $PROOF_QUALITY - 字体质量比字体属性重要. 对于 GDI 光栅字体,禁用缩放,字体大小接近选择的字体. 当使用 PROOF_QUALITY 时,虽然选择的字体大小可能不完全映射,但字体的质量高,不会出现失真. 如有必要,可以综合使用粗体,斜体,下划线和删除线字体 |
$nPitch | [可选参数] 指定字体斜度和家族. 使用两个低(序)位指定字体斜度,可以是下方的一个值: $DEFAULT_PITCH, $FIXED_PITCH, $VARIABLE_PITCH 四个高位设置字体,可以是以下值之一: $FF_DECORATIVE - 新奇字体.例如古英语 $FF_DONTCARE - 使用默认字体 $FF_MODERN - 常规笔画宽度字体,有或无衬线,例如 Pica, Elite, 与 Courier New $FF_ROMAN - 可变笔画宽度字体和衬线.例如 MS Serif $FF_SCRIPT - 手写体字体.例如 Script 与 Cursive $FF_SWISS - 可变笔画宽度字体;没有衬线.例如 MS Sans Serif |
$szFace | [可选参数] 字体名称 |
成功: | 逻辑字体句柄 |
失败: | 0 |
在MSDN中搜索
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <FontConstants.au3>
Global $tRECT, $hFont, $hOldFont, $hDC
HotKeySet("{ESC}", "_Exit")
$tRECT = DllStructCreate($tagRect)
DllStructSetData($tRECT, "Left", 5)
DllStructSetData($tRECT, "Top", 5)
DllStructSetData($tRECT, "Right", 250)
DllStructSetData($tRECT, "Bottom", 50)
$hDC = _WinAPI_GetDC(0)
$hFont = _WinAPI_CreateFont(50, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, _
$OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Arial')
$hOldFont = _WinAPI_SelectObject($hDC, $hFont)
_WinAPI_SetTextColor($hDC, 0x0000FF)
_WinAPI_SetBkColor($hDC, 0x000000)
; 注释下一行可以获得黑色背景而不是透明背景
_WinAPI_SetBkMode($hDC, $TRANSPARENT)
While 1
_WinAPI_DrawText($hDC, "Hello world!", $tRECT, $DT_CENTER)
Sleep(100)
WEnd
Func _Exit()
_WinAPI_SelectObject($hDC, $hOldFont)
_WinAPI_DeleteObject($hFont)
_WinAPI_ReleaseDC(0, $hDC)
_WinAPI_InvalidateRect(0, 0)
$tRECT = 0
Exit
EndFunc ;==>_Exit