Действительно ли возможно решить, что Windows шрифтов выбирает для связывания шрифтов?

Предположим, что у Вас есть строка с текстом в двух или больше сценариях. Когда Вы используете функцию GDI как TextOut, (современные версии), Windows сделает "связывание шрифтов". Таким образом, GDI потянет то, что он может с Вашим выбранным шрифтом и привлекать остальных в соответствующем шрифте, который он выбирает автоволшебно. Например, если часть Вашего текста будет на английском языке (использование Романского алфавита), и часть его является китайской (использование символов CJK), и Вам выбрали Arial, то английская часть будет оттянута в Arial, и китайская часть будет оттянута в другом шрифте, который имеет глифы CJK.

Мой вопрос, там способ определить который шрифты TextOut выберет (или действительно выбирал) для связывания шрифтов?

Я должен нарисовать некоторый текст с Uniscribe низкого уровня API, который не делает автоматического связывания шрифтов. Я реализовал свое собственное связывание шрифтов, но иногда мой алгоритм выбирает другой шрифт, чем TextOut делает для того же текста. Я пытаюсь понять алгоритм Windows лучше, но я не очень хорош при идентификации шрифтов на виде (особенно в незнакомых сценариях).

8
задан Adrian McCarthy 11 March 2010 в 18:04
поделиться

1 ответ

Шрифт выбирается с помощью записи в реестре. Она хорошо описана в этой статье. Цитирую соответствующую часть:

Если привязка шрифтов включена на вашем устройстве, вы можете изучить реестр перечислив вложенные ключи ключа ключа реестра по адресу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink для определения отображения связанных шрифтов к базовым шрифтам. Вы можете добавить ссылки используя Regedit для создания дополнительных подзамок.

2
ответ дан 6 December 2019 в 01:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: