我想在VBA用户表单显示在具有不同分辨率的屏幕上时调整其大小。似乎没有内置功能。 因此,使用一些代码将Top,Left,Width,Height和Font.Size与相同的因子相乘,比如说50%。但是,这会更改控件的外观:文本不再适合该区域。这与VBA代码无关,因为当您手动进行缩放时,您会得到相同的结果:
我想这是因为Control不仅包含标题文本,还包含选项按钮本身和一些边距?无论如何,我的问题是:如何计算字幕字体的最佳缩放因子。
答案 0 :(得分:1)
使用Tahoma并不容易修复,所以不要使用它,而是使用单倍间距字体。
查找CHAR的宽度作为其pt的比率(6,7,8,10,12,14,16等)
Dejavu Sans Mono的比率似乎约为1.8
然后使用
(width of button - margins) / len(text) = width of letter
width of letter * ptToFontRatio = pt size
按钮120px宽,上面有13个字符
(120-9)/13 = 8.53
8.53 * 1.8= 15.3 = closest smaller pt = 14pt
按钮60px宽,上面有13个字符
(60-9)/13 = 3.92
3.92 * 1.8 = 7.056 - closest smaller pt = 7pt
注意:在处理这些问题时,它总是很接近