如何在wxWidgets项目中包含和使用新字体? 我正在使用VS2005。 我只想用新的ttf字体打印文本。 在此先感谢!!
答案 0 :(得分:1)
除非您愿意链接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思维方式是问题的一个方面,但是蹩脚技术是另一个重要组成部分。)