3

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

由于我已经知道要安装应用程序的环境,因此解决方案不一定是脚本或程序,我在设计时拥有字体就足够了。

就其价值而言,它将是一个 ms-Access 应用程序。

4

6 回答 6

2

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

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

于 2009-11-27T09:50:51.523 回答
1

尝试枚举所有字体,用每一种字体测量“The quick brown fox jumped over the lazy dog”,然后取占空间最小的字体。

这个链接解释了如何枚举字体

这个链接解释了如何测量字符串

于 2009-11-27T09:37:40.000 回答
1

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

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

更不用说更窄的字体会使文本更难阅读,不管有多少。

于 2009-11-27T14:47:49.320 回答
0

如果是我,我会用Arial Narrow

于 2009-11-27T09:31:44.287 回答
0

只需获取一些字体查看器应用程序,例如 AMP Font Viewer。他们通常提供一个选项来列出所有已安装的字体,其中包含字体本身的任意字符串。

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

于 2009-11-27T14:01:02.873 回答
0

我只是回答这个问题,没有任何评论它是一个好主意还是解决您的问题的正确方法。

  1. 枚举字体。
  2. 对于每种字体,对其进行实例化,将其选择到 DC 中,然后使用 call GetTextMetrics
  3. 检查tmAveCharWidth指标结构的字段。如果它比目前发现的最小的要小,请记住它和字体。
  4. 从 DC 中选择字体并将其销毁。
  5. 重新创建平均字符宽度最小的字体并使用它。
于 2010-06-14T18:04:02.073 回答