Поделиться через


Интерфейс IFont (ocidl.h)

Предоставляет оболочку вокруг объекта шрифта Windows. Объект com-шрифта поддерживает ряд свойств чтения и записи, а также набор методов через интерфейс IFont . Он поддерживает тот же набор свойств (но не методы) через интерфейс диспетчеризации IFontDisp, производный от IDispatch для предоставления доступа к свойствам шрифта через автоматизацию. Система обеспечивает стандартную реализацию объекта шрифта с обоими интерфейсами.

Объект font также поддерживает исходящий интерфейс IPropertyNotifySink , поэтому клиент может определить, когда изменяются свойства шрифта. Так как объект font поддерживает по крайней мере один исходящий интерфейс, он также реализует IConnectionPointContainer и связанные интерфейсы для этой цели.

Объект font предоставляет свойство hFont, которое представляет собой дескриптор шрифта Windows, соответствующий другим атрибутам, указанным для шрифта. Объект шрифта задерживает реализацию этого объекта hFont, когда это возможно, поэтому последовательное задание двух свойств шрифта не приведет к реализации промежуточного шрифта. Кроме того, в качестве оптимизации объект шрифта, реализованный в системе, поддерживает кэш дескрипторов шрифтов. Два объекта шрифта в одном процессе с одинаковыми свойствами будут возвращать один и тот же дескриптор шрифта. Объект font может удалять дескрипторы шрифтов из этого кэша по мере необходимости, что приводит к особым замечаниям для клиентов, использующих свойство hFont.

Объект шрифта также поддерживает IPersistStream , что позволяет сохранять и загружать данные из экземпляра IStream. Объект, использующий объект шрифта для внутреннего использования, обычно сохраняет и загружает шрифт в рамках собственной обработки сохраняемости объекта.

Кроме того, объект font поддерживает IDataObject, который может отображать набор свойств, содержащий атрибуты шрифта, что позволяет клиенту сохранять эти свойства в виде текста.

Наследование

Интерфейс IFont наследуется от интерфейса IUnknown . IFont также имеет следующие типы элементов:

Методы

Интерфейс IFont содержит следующие методы.

 
IFont::AddRefHfont

Уведомляет объект шрифта о том, что ранее реализованный шрифт, идентифицируемый с помощью hFont, должен оставаться действительным до тех пор, пока не будет вызван метод ReleaseHfont или не будет полностью освобожден сам объект шрифта.
IFont::Clone

Создает повторяющийся объект шрифта.
IFont::get_Bold

Возвращает текущее свойство шрифта Bold.
IFont::get_Charset

Извлекает набор символов, используемый в шрифте.
IFont::get_hFont

Извлекает дескриптор шрифта, описанный этим объектом шрифта.
IFont::get_Italic

Возвращает текущее свойство italic шрифта.
IFont::get_Name

Извлекает имя семейства шрифтов.
IFont::get_Size

Извлекает размер шрифта в точках.
IFont::get_Strikethrough

Возвращает текущее свойство шрифта Strikethrough.
IFont::get_Underline

Возвращает текущее свойство подчеркивания шрифта.
IFont::get_Weight

Возвращает текущее свойство Weight шрифта.
IFont::IsEqual

Сравнивает этот объект шрифта с другим для эквивалентности.
IFont::p ut_Bold

Задает свойство шрифта Bold.
IFont::p ut_Charset

Задает кодировку шрифта.
IFont::p ut_Italic

Задает свойство Italic шрифта.
IFont::p ut_Name

Задает новое имя семейства шрифтов.
IFont::p ut_Size

Задает размер шрифта в точках.
IFont::p ut_Strikethrough

Задает свойство Strikethrough шрифта.
IFont::p ut_Подчеркивание

Задает свойство Подчеркивание шрифта.
IFont::p ut_Weight

Задает свойство Weight шрифта.
IFont::QueryTextMetrics

Заполняет структуру, выделенную вызывающим объектом, сведениями о шрифте.
IFont::ReleaseHfont

Уведомляет объект шрифта о том, что вызывающий объект, который ранее блокировал этот шрифт в кэше с помощью IFont::AddRefHfont, больше не требует блокировки.
IFont::SetHdc

Предоставляет контекст устройства для шрифта, описывающего режим логического сопоставления.
IFont::SetRatio

Преобразует коэффициент масштабирования для этого шрифта между логическими единицами и единицами HIMETRIC.

Комментарии

Каждое свойство в интерфейсе IFont включает метод get_PropertyName , если свойство поддерживает доступ на чтение, и метод put_PropertyName , если свойство поддерживает доступ на запись. Большинство этих свойств поддерживают доступ как для чтения, так и для записи.

Свойство Тип Метод доступа на чтение Метод доступа на запись Описание
имя; BSTR get_Name put_Name Имя шрифта, например Arial.
Размер CY get_Size put_Size Размер шрифта в точках, выраженный в типе CY для обеспечения размеров дробных точек.
Полужирный BOOL get_Bold put_Bold Указывает, выделен ли шрифт полужирным шрифтом.
Наклонный BOOL get_Italic put_Italic Указывает, является ли шрифт курсивом.
Подчеркнуть BOOL get_Underline put_Underline Указывает, подчеркнут ли шрифт.
Зачеркнутый BOOL get_Strikethrough put_Strikethrough Указывает, является ли шрифт зачеркивным.
Weight short get_Weight put_Weight Смелость шрифта.
Charset short get_Charset put_Charset Набор символов, используемый в шрифте, например ANSI_CHARSET, DEFAULT_CHARSET или SYMBOL_CHARSET.
hFont HFONT get_hFont Дескриптор шрифта Windows, который можно выбрать в контексте устройства для отрисовки.
 

Реализация OLE

Система обеспечивает стандартную реализацию объекта шрифта с интерфейсом IFont поверх базовой системной поддержки шрифтов. Объект шрифта создается с помощью функции OleCreateFontIndirect. Объект шрифта поддерживает ряд свойств чтения и записи, а также набор методов через интерфейс IFont и поддерживает тот же набор свойств (но не методы) через интерфейс диспетчеризации IFontDisp , производный от IDispatch для предоставления доступа к свойствам шрифта через автоматизацию. Системная реализация объекта шрифта предоставляет оба интерфейса.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header ocidl.h

См. также раздел

IFontDisp