Сравнение 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 |