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


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

Для тех разработчиков, которые переносят код приложения Win32, в следующей таблице перечислены API-интерфейсы Текста Win32 и приблизительный эквивалент в 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 Возвращает параметр фильтра пропорций. N/A
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 Возвращает сведения о выбранном шрифте для контекста отображения. N/A
GetFontUnicodeRanges Указывает, какие символы Юникода поддерживаются шрифтом. цикл IDWriteFont::HasCharacter
GetGlyphIndices Преобразует строку в массив глифовых индексов. IDWriteFontFace::GetGlyphIndices
GetGlyphOutline Возвращает контур или растровое изображение для символа в шрифте TrueType. glyph metrics -- IDWriteFontFace::GetDesignGlyphMetrics, фактические сведения о структуре -IDwriteFontFace::GetGlyphRunOutline, если требуется глиф растровых карт, IDWriteRenderBitmapRenderTarget::D rawGlyphRun
GetKerningPairs Возвращает пары символьного кернинга для шрифта. Kerning разрешен через типографические свойства макета (DirectWrite выполняет кернинг сам по себе, поэтому не существует метода для возврата этих сведений).
GetOutlineTextMetrics Возвращает текстовые метрики для шрифтов TrueType. IDWriteFontFace::GetMetrics
GetRasterizerCaps Указывает, установлены ли шрифты TrueType. (Шрифты TrueType устанавливаются в Windows Vista и Windows 7 по умолчанию.)
GetTabbedTextExtent Вычисляет ширину и высоту символьной строки, включая вкладки. IDWriteTextLayout::GetMetrics
GetTextAlign Возвращает параметр выравнивания текста для контекста устройства. IDWriteTextFormat::GetTextAlignment
GetTextCharacterExtra Возвращает текущий интервал между символами для контекста устройства. N/A
GetTextColor Возвращает цвет текста для контекста устройства. N/A. (DirectWrite не зависит от отрисовки, поэтому не знает цвет. Приложения должны отслеживать его сами.)
GetTextExtentExpoint Получает количество символов в строке, которая будет соответствовать пробелу. IDWriteTextLayout::GetMetrics
GetTextExtentExPointI Получает количество глифовых индексов, которые будут соответствовать пробелу. IDWriteTextLayout::GetMetrics
GetTextExtentPoint32 Вычисляет ширину и высоту строки текста. IDWriteTextLayout::GetMetrics
GetTextExtentPointI Вычисляет ширину и высоту массива глифовых индексов. IDWriteTextLayout::GetMetrics
GetTextFace Возвращает имя шрифта, выбранного в контексте устройства. IDWriteFont::GetFaceNames (возвращает все имена)
GetTextMetrics Заполняет буфер метриками шрифта. IDWriteFontFace::GetMetrics
PolyTextOut Рисует несколько строк с помощью цветов шрифта и текста в контексте устройства. N/A; создание нескольких объектов макета
RemoveFontMemResourceEx Удаляет шрифт, источник которого был внедрен в документ из системной таблицы шрифтов. IUnknown::Release в связанном объекте
RemoveFontResource Удаляет шрифты в файле из системной таблицы шрифтов N/A
RemoveFontResourceEx Удаляет из системной таблицы шрифтов частный или непеременимый шрифт. N/A
SetMapperFlags Изменяет алгоритм, используемый для сопоставления логических шрифтов с физическими шрифтами. N/A
SetTextAlign Задает флаги выравнивания текста для контекста устройства. IDWriteTextFormat::SetTextAlignment
SetTextCharacterExtra Задает интервал между символами. N/A
SetTextColor Задает цвет текста для контекста устройства. Приложение должен заботиться об указании цвета в одном из вызовов Рисование.
SetTextJustification Указывает объем пространства, которое система должна добавить к символам останова в строке. N/A. Интервалы оправданий и символов не поддерживаются в этом выпуске.
TabbedTextOut Записывает символьную строку в расположении, расширяя вкладки до указанных значений. IDWriteTextLayout::D raw
TextOut Записывает символьную строку в расположении IDWriteTextLayout::D raw