如何确定Windows上“最窄”的字体?

时间:2009-11-27 09:23:55

标签: windows user-interface fonts font-size true-type-fonts

我正在寻找一种方法来找到每个字母使用最小平均水平空间的字体,因为我的应用程序中有一些按钮需要在其中显示相当长的文本,目标是使具有最小宽度的按钮。

由于我已经知道将要安装应用程序的环境,因此解决方案不一定是脚本或程序,只需在设计时使用该字体即可。

对于它的价值,它将成为一个ms-Access应用程序。

6 个答案:

答案 0 :(得分:2)

我不认为你真的想要绝对最窄的字体,因为它可能是某种符号/实用字体,它实际上可能不包含真实字符。当然,在我的系统中,“最窄”的字体将是几乎不包含拉丁字符的字体,使得在其中呈现的字符串的宽度几乎为零!

Arial Narrow由Office安装,因此对于Access应用程序来说这似乎是一个合理的选择。如果你想要比我想要的更窄,我认为你必须捆绑自己的特定字体。

答案 1 :(得分:1)

尝试枚举所有字体,用每个字体测量“快速棕色狐狸跳过懒狗”,然后选择占据最小空间的字体。

This link解释了如何枚举字体

This link解释了如何衡量字符串

答案 2 :(得分:1)

无法相信这还没有被提及:只需减少按钮上的文字数量!

如果您需要在按钮上添加一个句子,那么您正在做错了。您应该有一个或两个单词,最好是用户将要执行的操作(而不是确定/取消)。如有必要,您可以使用该对话框获得每个操作所需内容的更具体描述。

更不用说更窄的字体使得文本无论如何都难以阅读,无论多么多。

答案 3 :(得分:0)

如果我,我将使用Arial Narrow

答案 4 :(得分:0)

只需获得一些字体查看器应用程序,如AMP Font Viewer。它们通常提供一个选项,列出所有已安装的字体,并使用字体本身显示任意字符串。

在我的系统上,我看到许多字体(非标准)比Arial Narrow窄。就像众所周知的Haettenschweiler,或者许多“浓缩”字体一样。

答案 5 :(得分:0)

我只是在回答这个问题,而不是评论这是一个好主意还是解决问题的正确方法。

  1. 枚举字体。
  2. 对于每种字体,将其实例化,将其选入DC,然后使用GetTextMetrics调用。
  3. 检查指标结构的tmAveCharWidth字段。如果它小于目前为止发现的最小值,请记住它和字体。
  4. 选择DC以外的字体并销毁它。
  5. 重新创建平均字符宽度最小的字体并使用它。