GUICtrlSetFont
设置控件的字体.
GUICtrlSetFont ( controlID, size [, weight [, attribute [, fontname [, quality]]]] )
参数
controlID
|
使用 GUICtrlCreate...() 创建控件类函数返回的控件标识符, 或 -1 使用前面创建的控件.
|
size
|
字体大小(默认 8.5).
|
weight
|
[可选] 字体笔画粗细度范围 0 到 1000. 例如 400 为正常, 700 为粗体. 如设置为 0, 则使用一个默认值.
可使用下列定义值:
$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
常量定义在 FontConstants.au3
|
attribute
|
[可选] 字体属性,可以结合以下值:
$GUI_FONTITALIC (2) = 斜体
$GUI_FONTUNDER (4) = 下划线
$GUI_FONTSTRIKE (8) = 删除线
常量定义在 GUIConstantsEx.au3
|
fontname
|
[可选] 字体名称. (如果字体设置为"", 或未找到设置的字体, 则 GUI 使用操作系统默认的字体)
|
quality
|
[可选] 字体质量. 可使用下列值:
$DEFAULT_QUALITY (0) = 忽略字体外观质量.
$DRAFT_QUALITY (1) = 字体的外观较使用 $PROOF_QUALITY 时并不那么重要. 对于 GDI 光栅字体, 缩放被启用. 这意味着可用更多的字体大小. 但质量可能会降低. 如果必要, 可用于粗体, 斜体, 下划线和删除线的合成字体.
$PROOF_QUALITY (2) = (默认) 字体的字符质量是比精确匹配逻辑字体属性更重要. 对于 GDI 光栅字体, 禁用缩放和选择最接近大小的字体. 当使用 $PROOF_QUALITY 时, 虽然不可能确切地映射所选取的字体大小, 但字体的质量很高,没有失真的外观. 如果必要, 可用于粗体、 斜体、 下划线和删除线的合成字体.
$NONANTIALIASED_QUALITY (3) = 字体没有抗锯齿效果.
$ANTIALIASED_QUALITY (4) = 如果字体支持和字体不是太小或太大, 则字体始终有抗锯齿效果.
$CLEARTYPE_QUALITY (5) = 如果设置, 文本渲染(如果可能)使用 ClearType 抗锯齿方法. 参见 MSDN 的 LOGFONT 有关 ClearType 的详细信息.
如果 $ANTIALIASED_QUALITY 与 $NONANTIALIASED_QUALITY 都不使用, 则仅当用户在控制面板中选择平滑屏幕字体时, 字体才有抗锯齿效果.
常量定义在 FontConstants.au3
|
返回值
备注
默认控件使用 GUISetFont() 设置的字体.
请查看附录的完整字体列表, 以了解各个 Windows 系统支持的字体.
字体大小可以是小数, 比如 8.5.
对于某些控件, 如标记(labels)控件, 默认大小使用 8.5 代替 9, 以适应 Windows 主题的值.
"质量"参数请参考 MSDN, 一些 windows XP 需要设置 CLEARTYPE_QUALITY=5
相关
GUICtrlCreate..., GUISetFont
函数示例
#include <GUIConstantsEx.au3>
#include <FontConstants.au3>
Example()
Func Example()
; Font type to be used for setting the font of the controls.
Local Const $sFont = "Comic Sans Ms"
; Create a GUI with various controls.
Local $hGUI = GUICreate("Example", 300, 200)
; Create label controls.
GUICtrlCreateLabel("A string of text underlined", 10, 10, 185, 17)
GUICtrlSetFont(-1, 9, $FW_NORMAL, $GUI_FONTUNDER, $sFont) ; Set the font of the previous control.
Local $idLabel2 = GUICtrlCreateLabel("A string of italic text", 10, 30, 185, 17)
GUICtrlSetFont($idLabel2, 9, $FW_NORMAL, $GUI_FONTITALIC, $sFont) ; Set the font of the controlID stored in $iLabel2.
Local $idLabel3 = GUICtrlCreateLabel("A string of text with a strike through", 10, 50, 290, 17)
GUICtrlSetFont($idLabel3, 9, $FW_NORMAL, $GUI_FONTSTRIKE, $sFont) ; Set the font of the controlID stored in $iLabel3.
Local $idClose = GUICtrlCreateButton("Close", 210, 170, 85, 25)
; Display the GUI.
GUISetState(@SW_SHOW, $hGUI)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $idClose
ExitLoop
EndSwitch
WEnd
; Delete the previous GUI and all controls.
GUIDelete($hGUI)
EndFunc ;==>Example
----------------------------------------
|