Function Reference

首页  后退  前进

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

返回值

成功:

返回 1.

失败:

返回 0.

备注

默认控件使用 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

----------------------------------------