_GDIPlus_FontCollectionGetFamilyList
Получает объекты шрифтов, находящиеся в коллекции шрифтов
#Include <GDIP.au3>
_GDIPlus_FontCollectionGetFamilyList($hFontCollection)
Параметры
$hFontCollection | Указатель на объект FontCollection |
Возвращаемое значение
Успех: | Возвращает массив объектов FontFamily: |
[0] - Количество шрифтов в массиве | |
[1] - Первый объект FontFamily | |
[2] - Второй объект FontFamily | |
[n] - n-ый объект FontFamily | |
Ошибка: | Возвращает -1, либо: |
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall() | |
$GDIP_STATUS содержит не нулевое значение кода ошибки. | |
$GDIP_ERROR: | |
1 - Ошибка _GDIPlus_FontCollectionGetFamilyCount | |
2 - Коллекция шрифтов пуста | |
3 - $GDIP_STATUS содержит код ошибки функции _GDIPlus_FontCollectionGetFamilyList |
См. также
Пример
#include <GDIP.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $iARGBBackground, $hGraphics, $aFontFamilies
_Example()
Func _Example()
Local $hGUI, $hFontCollection
; Инициализирует библиотеку GDI+
_GDIPlus_Startup()
$hGUI = GUICreate("Получает объекты шрифтов", 400, 200)
GUISetState()
; Создаёт графический объект из дескриптора окна
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
; Создаёт объект InstalledFontCollection, содержащий поддерживаемые системой шрифты
$hFontCollection = _GDIPlus_FontCollectionCreate()
; Получает все шрифты
$aFontFamilies = _GDIPlus_FontCollectionGetFamilyList($hFontCollection)
; Получает цвет фона стандартного диалогового окна
$iARGBBackground = BitOR(0xFF000000, _WinAPI_GetSysColor($COLOR_BTNFACE))
; Теперь рисует 3 строки используя случайный шрифт каждые 2 секунды
_PrintFonts()
AdlibRegister("_PrintFonts", 2000)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
AdlibUnRegister("_PrintFonts")
; Освобождает ресурсы
_GDIPlus_GraphicsDispose($hGraphics)
; Закрывает библиотеку GDI+
_GDIPlus_Shutdown()
EndFunc
Func _PrintFonts()
Local $iI, $iIndex, $iMaxIndex, $hFontFamily, $sFamilyName
If IsArray($aFontFamilies) Then
$iMaxIndex = $aFontFamilies[0]
_GDIPlus_GraphicsClear($hGraphics, $iARGBBackground)
For $iI = 1 To 3
$iIndex = Random(1, $iMaxIndex, 1)
; Получает случайный объект шрифта из коллекции
$hFontFamily = $aFontFamilies[$iIndex]
; Получает имя шрифта
$sFamilyName = _GDIPlus_FontFamilyGetFamilyName($hFontFamily)
; Рисует имя шрифта, используя свой шрифт
_GDIPlus_GraphicsDrawString($hGraphics, $sFamilyName, 20, $iI*40, $sFamilyName, 15)
Next
EndIf
EndFunc