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


Сравнение API текста Win32

Для тех разработчиков, которые переносят код приложения Win32, в следующей таблице перечислены API-интерфейсы Win32 Text и примерные эквиваленты в DirectWrite.

Текстовые вызовы GDI Описание Эквивалент DirectWrite
AddFontMemResourceEx Добавляет внедренный шрифт в таблицу системных шрифтов. CreateCustomFontFileReference + CreateCustomFontCollection
AddFontResource Добавляет ресурс шрифта в таблицу системных шрифтов. Эквивалента нет. AddFontResource добавляет в коллекцию системных шрифтов на этапе установки шрифтов GDI. DirectWrite заранее заполняет коллекцию системных шрифтов и автоматически отслеживает ее обновления, поэтому установка не требуется.
AddFontResourceEx Добавляет частный или непеременимый шрифт в системную таблицу шрифтов. То же, что и выше
CreateFont Создает логический шрифт. Вместо логического шрифта приложения могут указать набор свойств шрифта (например, имя семейства, вес, стиль, растяжение и размер) для создания IDWriteTextFormat. Только приложения, которым требуется перечисление шрифта, будут обращаться к IDWriteFont черезIDWriteFontCollection.
CreateFontIndirect Создает логический шрифт из структуры. То же, что и выше
CreateFontIndirectEx Создает логический шрифт из структуры. То же, что и выше
Drawtext Рисует отформатированный текст в прямоугольнике. IDWriteTextLayout::D raw
DrawTextEx Рисует отформатированный текст в прямоугольнике. IDWriteTextLayout::D raw
EnumFontFamExProc Определяемая приложением функция обратного вызова, используемая с EnumFontFamiliesEx для обработки шрифтов. Интерфейс IDWriteFontCollection через IDWriteFactory::GetSystemFontCollection
EnumFontFamiliesEx Перечисляет все шрифты в системе с определенными характеристиками. Интерфейс IDWriteFontCollection через IDWriteFactory::GetSystemFontCollection
ExtTextOut Рисует символьную строку. IDWriteTextLayout::D raw или IDWriteRenderBitmapTarget::D rawGlyphRun
GetAspectRatioFilterEx Возвращает параметр для фильтра пропорций. Н/Д
GetCharABCWidths Возвращает ширину последовательных символов из шрифта TrueType. IDWriteFontFace::GetDesignGlyphMetrics
GetCharABCWidthsFloat Возвращает ширину последовательных символов из текущего шрифта. IDWriteFontFace::GetDesignGlyphMetrics
GetCharABCWidthsI Возвращает ширину последовательных индексов глифов или массива индексов глифов из шрифта TrueType. IDWriteFontFace::GetDesignGlyphMetrics
GetCharacterPlacement Возвращает сведения о строке символов. IDWriteTextAnalyzer
GetCharWidth32 Возвращает ширину последовательных символов из текущего шрифта. IDWriteFontFace::GetDesignGlyphMetrics или IDWriteTextLayout::GetMetrics
GetCharWidthFloat Получает дробную ширину последовательных символов из текущего шрифта. IDWriteFontFace::GetDesignGlyphMetrics или IDWriteTextLayout::GetMetrics
GetCharWidthI Возвращает ширину последовательных индексов глифов или массив индексов глифов из текущего шрифта. IDWriteFontFace::GetDesignGlyphMetrics или IDWriteTextLayout::GetMetrics
GetFontData Возвращает данные метрик для шрифта TrueType. IDWriteFontFace::TryGetFontTable
GetFontLanguageInfo Возвращает сведения о выбранном шрифте для контекста отображения. Н/Д
GetFontUnicodeRanges Сообщает, какие символы Юникода поддерживаются шрифтом. цикл IDWriteFont::HasCharacter
GetGlyphIndices Преобразует строку в массив индексов глифов. IDWriteFontFace::GetGlyphIndices
GetGlyphOutline Возвращает контур или растровое изображение для символа в шрифте TrueType. метрики глифа -- IDWriteFontFace::GetDesignGlyphMetrics, фактические сведения о структуре --IDwriteFontFace::GetGlyphRunOutline, если вам нужны растровые изображения глифов, IDWriteRenderBitmapRenderTarget::D rawGlyphRun
GetKerningPairs Возвращает пары символов и кернинга для шрифта. Кернинг разрешен с помощью типографических свойств макета (DirectWrite выполняет кернинг, поэтому нет метода для возврата этих сведений).
GetOutlineTextMetrics Возвращает текстовые метрики для шрифтов TrueType. IDWriteFontFace::GetMetrics
GetRasterizerCaps Указывает, установлены ли шрифты TrueType. (Шрифты TrueType устанавливаются в Windows Vista и Windows 7 по умолчанию.)
GetTabbedTextExtent Вычисляет ширину и высоту символьной строки, включая табуляции. IDWriteTextLayout::GetMetrics
GetTextAlign Возвращает параметр выравнивания текста для контекста устройства. IDWriteTextFormat::GetTextAlignment
GetTextCharacterExtra Возвращает текущий межсимвельный интервал для контекста устройства. Н/Д
GetTextColor Возвращает цвет текста для контекста устройства. Недоступно (DirectWrite не зависит от отрисовки и, следовательно, не знает цвета. Приложения должны сами отслеживать его.)
GetTextExtentExPoint Возвращает количество символов в строке, которая будет помещаться в пространстве. IDWriteTextLayout::GetMetrics
GetTextExtentExPointI Возвращает количество индексов глифов, которые будут помещаться в пространстве. IDWriteTextLayout::GetMetrics
GetTextExtentPoint32 Вычисляет ширину и высоту строки текста. IDWriteTextLayout::GetMetrics
GetTextExtentPointI Вычисляет ширину и высоту массива индексов глифов. IDWriteTextLayout::GetMetrics
GetTextFace Возвращает имя шрифта, выбранного в контексте устройства. IDWriteFont::GetFaceNames (возвращает все имена)
GetTextMetrics Заполняет буфер метриками для шрифта. IDWriteFontFace::GetMetrics
PolyTextOut Рисует несколько строк, используя шрифт и цвета текста в контексте устройства. Н/Д; создание нескольких объектов макета
RemoveFontMemResourceEx Удаляет шрифт, источник которого был внедрен в документ, из таблицы системных шрифтов. IUnknown::Release для связанного объекта
RemoveFontResource Удаляет шрифты в файле из системной таблицы шрифтов. Н/Д
RemoveFontResourceEx Удаляет частный или неперемещаемый шрифт из системной таблицы шрифтов. Н/Д
SetMapperFlags Изменяет алгоритм, используемый для сопоставления логических шрифтов с физическими шрифтами. Н/Д
SetTextAlign Задает флаги выравнивания текста для контекста устройства. IDWriteTextFormat::SetTextAlignment
SetTextCharacterExtra Задает межсимвейный интервал. Н/Д
SetTextColor Задает цвет текста для контекста устройства. Приложение должен позаботиться о том, чтобы указать цвет в одном из вызовов Draw .
SetTextJustification Указывает объем пространства, который система должна добавить к символам разрыва в строке. Недоступно Выравнивание и интервалы между символами в этом выпуске не поддерживаются.
TabbedTextOut Записывает символьную строку в расположении, разворачивая табуляции до указанных значений. IDWriteTextLayout::D raw
TextOut Записывает символьную строку в расположении IDWriteTextLayout::D raw