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

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

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

有帮助吗?

解决方案

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

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

其他提示

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

此链接说明了如何枚举字体

此链接说明了如何衡量字符串

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

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

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

如果我,我将使用 Arial Narrow

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

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

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

  1. 枚举字体。
  2. 对于每种字体,实例化它,将其选择到DC中,然后使用call GetTextMetrics
  3. 检查指标结构的 tmAveCharWidth 字段。如果它小于目前为止发现的最小值,请记住它和字体。
  4. 选择DC以外的字体并销毁它。
  5. 重新创建平均字符宽度最小的字体并使用它。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top