查找用户可用的所有系统字体以便将它们显示在下拉选择框中的最佳方法是什么?
我还想区分 Unicode 和非 Unicode 字体。
我正在使用完全支持 Unicode 的 Delphi 2009,并且想要一个 Delphi 解决方案。
The Screen.Fonts
属性是通过填充EnumFontFamiliesExAPI函数 http://msdn.microsoft.com/en-us/library/ms534005.aspx。在看表格.pas有关调用该函数的示例。
它调用的回调函数将收到一个TNewTextMetricEx http://msdn.microsoft.com/en-us/library/ms533968.aspx记录,并且该记录的成员之一是TFontSignature http://msdn.microsoft.com/en-us/library/ms776424.aspx. The fsUsb
字段指示字体声明支持哪些 Unicode 子范围。
该系统实际上没有“Unicode 字体”。就连字体里也有这个词Unicode他们的名字中没有字形all统一码字符。您可以区分位图、打印机和 TrueType 字体,但除此之外,您能做的最好的事情就是确定您正在考虑的字体是否支持您想要的字符。如果该字体不是您所认为的“Unicode 字体”,但它支持您需要的所有字符,那么它有什么区别呢?要获取此信息,您可能有兴趣GetFontUnicodeRanges http://msdn.microsoft.com/en-us/library/ms533944.aspx.
Microsoft 技术用于根据哪些字体包含哪些字符来显示不同字体的文本Uniscribe http://msdn.microsoft.com/en-us/library/ms776488.aspx, 特别字体后备 http://msdn.microsoft.com/en-us/library/ms776534.aspx。我不知道 Delphi 对 Uniscribe 有任何支持;我曾经开始为它编写一套导入单元,但我的兴趣变化无常,在完成之前我就转向了其他东西。迈克尔·卡普兰的博客 http://blogs.msdn.com/michkap/有时会谈论 Uniscribe,所以这是另一个值得关注的地方。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)