Функция _GDIPlus_FontCollectionCreate

         Описание функции


_GDIPlus_FontCollectionCreate

Создаёт объект InstalledFontCollection, который в дальнейшем можно использовать для перечисления шрифтов, установленных в системе

#Include <GDIP.au3>
_GDIPlus_FontCollectionCreate()

Возвращаемое значение

Успех:Возвращает дескриптор нового InstalledFontCollection
Ошибка:Возвращает 0, либо:
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall()
$GDIP_STATUS содержит не нулевое значение кода ошибки

Примечания

Объекты FontFamily принадлежат коллекции, и они не должны быть уничтожены.

См. также

Пример

#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