我如何确定“最窄的” Windows上的字体?
-
05-07-2019 - |
题
我正在寻找一种方法来找到每个字母使用最小平均水平空间的字体,因为我的应用程序中有一些按钮需要在其中显示相当长的文本,目标是使具有最小宽度的按钮。
由于我已经知道将要安装应用程序的环境,因此解决方案不一定是脚本或程序,只需在设计时使用该字体即可。
对于它的价值,它将成为一个ms-Access应用程序。
解决方案
我不认为你真的想要绝对最窄的字体,因为它可能是某种符号/实用字体,它实际上可能不包含真实字符。当然,在我的系统上,这是最狭窄的’字体将是几乎不包含拉丁字符的字体,使得在其中呈现的字符串的宽度几乎为零!
Arial Narrow由Office安装,因此对于Access应用程序来说这似乎是一个合理的选择。如果你想要比我想要的更窄,我认为你必须捆绑自己的特定字体。
其他提示
无法相信这还没有被提及:只需减少按钮上的文字数量!
如果您需要在按钮上添加一个句子,那么您正在做错了。您应该有一个或两个单词,最好是用户将执行的操作(而不是确定/取消)。如有必要,您可以使用该对话框获得每个操作所需内容的更具体描述。
更不用说更窄的字体使得文本无论如何都难以阅读,无论多么多。
如果我,我将使用 Arial Narrow
只需获得一些字体查看器应用程序,如AMP Font Viewer。它们通常提供一个选项,列出所有已安装的字体,并使用字体本身显示任意字符串。
在我的系统上,我看到许多字体(非标准)比Arial Narrow窄。像众所周知的Haettenschweiler,或许多“浓缩”的一样。字体。
我只是在回答这个问题,而不是评论这是一个好主意还是解决问题的正确方法。
- 枚举字体。
- 对于每种字体,实例化它,将其选择到DC中,然后使用call
GetTextMetrics
。 - 检查指标结构的
tmAveCharWidth
字段。如果它小于目前为止发现的最小值,请记住它和字体。 - 选择DC以外的字体并销毁它。
- 重新创建平均字符宽度最小的字体并使用它。 醇>
不隶属于 StackOverflow