Как включить и использовать новые шрифты в проекте wxWidgets? - PullRequest
2 голосов
/ 29 сентября 2011

Как включить и использовать новые шрифты в проекте wxWidgets? Я использую VS2005. Я просто хочу напечатать текст, используя новый шрифт TTF. Заранее спасибо !!

1 Ответ

1 голос
/ 29 сентября 2011

Если вы не готовы ссылаться на что-то вроде FreeType:

http://en.wikipedia.org/wiki/FreeType

... для большинства программ требуется, чтобы шрифт был установлен в операционной системе пользователем или каким-либо специфичным для ОС сценарием. Вы не можете просто загрузить его по имени файла в приложении.

Из-за зависимости наименования и доступа к пользовательским шрифтам на платформе путь наименьшего сопротивления заключается не в том, чтобы пытаться жестко закодировать шрифт ... а в том, чтобы позволить пользователю выбрать один из диалоговых окон. Вы бы использовали wxFontDialog для этого:

http://docs.wxwidgets.org/stable/wx_wxfontdialog.html

Это позволит вам получить wxFontData, из которого вы можете получить выбранный wxFont:

http://docs.wxwidgets.org/stable/wx_wxfontdata.html#wxfontdatagetchosenfont

Как только вы это сделаете, вы можете сохранить и перезагрузить идентификатор шрифта через собственный интерфейс строки:

http://docs.wxwidgets.org/stable/wx_wxfont.html#wxfontgetnativefontinfodesc

Попытка сформулировать эти строки самостоятельно или поработать с «именем лица» немного хитрее:

http://docs.wxwidgets.org/stable/wx_wxfont.html#wxfontsetfacename

Вообще говоря, здесь возникает много проблем, связанных со шрифтами в HTML. Если у вас есть очень конкретное представление о кроссплатформенном внешнем виде какого-либо текста, вам лучше всего часто делать изображение из этого текста и использовать его вместо того, чтобы пройтись по обручам, чтобы получить нужный шрифт в приложении. Если вы более гибки и имеете много текста, который интересует пользователя, тогда он может быть заинтересован и в изменении шрифта. Поэтому просто используйте значение по умолчанию, но предложите пользователю выбрать все, что он хочет, который установлен в его системе.

(Примечание: я лично считаю, что обработка шрифтов практически во всех ОС или системах документов - это позор. Представьте себе мир, в котором для отображения графики в вашей программе вам пришлось зарегистрировать ее в операционная система через сложный процесс, и она не будет копировать с компьютера на компьютер, когда вы скопировали документ, в который она была встроена. Сейчас мы имеем дело с графикой, которая на несколько порядков больше, чем файлы шрифтов, и все же они обрабатываются без проблем. в то время как люди, кажется, воспринимают отсутствие плавной передачи шрифтов как «нормальное». Архаическое мышление DRM поставщиков шрифтов - одна сторона проблемы, но хромая технология - другой большой компонент.)

...