Функция _WinAPI_CreateFontIndirect

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


_WinAPI_CreateFontIndirect

Создаёт логический шрифт с указанными характеристиками

#include <WinAPI.au3>
_WinAPI_CreateFontIndirect($tLogFont)

Параметры

$tLogFont Структура $tagLOGFONT, определяющая характеристики логического шрифта

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

Успех:Возвращает дескриптор логического шрифта
Ошибка:Возвращает 0

Примечания

Эта функция создает логический шрифт с характеристиками, указанными в структуре $tagLOGFONT. Когда этот шрифт выбран с помощью функции SelectObject, GDI-font-mapper пытается сопоставить логический шрифт с существующим физическим шрифтом. Если не удается найти точное соответствие, то предоставляется альтернативный шрифт, чьи характеристики в наибольшей степени совпадают с запрошенными характеристиками, на сколько это возможно.

Когда шрифт больше не нужен вызовите функцию _WinAPI_DeleteObject(), чтобы удалить его.

См. также

_WinAPI_SetFont, $tagLOGFONT, _WinAPI_CreateFont

См. также

Искать CreateFontIndirect в библиотеке MSDN

Пример

#include <GuiListBox.au3>
#include <GuiButton.au3>

Example()

Func Example()
    Local $hGUI, $hFont, $hBtn, $hListBox, $tLogFont

    $hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 350, 200)

    $hBtn = _GUICtrlButton_Create($hGUI, "Кнопка со шрифтом", 10, 10, 270, 34)
    $hListBox = _GUICtrlListBox_Create($hGUI, "Жирный шрифт", 10, 50, 270, 150)

    ; Заполняет ListBox пунктами
    _GUICtrlListBox_BeginUpdate($hListBox)
    _GUICtrlListBox_Dir($hListBox, "", $DDL_DRIVES, False)
    _GUICtrlListBox_EndUpdate($hListBox)

    ; Характеристики шрифта на основе структуры
    $tLogFont = DllStructCreate($tagLOGFONT)
    DllStructSetData($tLogFont, "Height", 22)
    DllStructSetData($tLogFont, "Weight", 700)
    DllStructSetData($tLogFont, "Italic", True)
    DllStructSetData($tLogFont, "FaceName", 'Courier new')
    $hFont = _WinAPI_CreateFontIndirect($tLogFont)

    ; Назначает шрифт элементам управления
    _WinAPI_SetFont($hBtn, $hFont)
    _WinAPI_SetFont($hListBox, $hFont)

    GUISetState()

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    _WinAPI_DeleteObject($hFont)
EndFunc   ;==>Example