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