DrawTextEx()
сделает все, что вам нужно и нужно, если весь текст будет отображаться одним шрифтом.
Если вам нужно смешать шрифты, вам придется делать работу самостоятельно. В этом случае вы захотите взглянуть на API-интерфейсы, такие как GetTextMetrics()
(не GetSystemMetrics()
) и GetTextExtentExPoint32()
, чтобы определить позиции и размеры для каждого прогона.
Если вам нужно обрабатывать сложные сценарии (например, языки с написанием справа налево и сценарии, в которых буквы меняют форму в зависимости от контекста), вам потребуется Uniscribe. Внимание: Uniscribe - мощный, но очень низкий уровень. Может потребоваться много работы, чтобы обернуть его интерфейсом более высокого уровня. Если вам нужна сложная обработка скриптов, вам лучше использовать браузер.