Private Sub Form_Click()
Print Label1.FontSize
End SubPrivate Sub Form_Load()
Label1.AutoSize = True
Label1.FontSize = 20
End Sub为什么打印出来字体的大小是20.25?
Print Label1.FontSize
End SubPrivate Sub Form_Load()
Label1.AutoSize = True
Label1.FontSize = 20
End Sub为什么打印出来字体的大小是20.25?
所以设定的 FontSize 要经过 磅->像素(取整)->磅 的转换,可能产生小数。只有点阵字体的标准单位才是像素,不信你换 Terminal 字体试试。如果谁还以为字体大小就是像素,那就非常凹凸了
——你生活在 DOS+点阵字体 的时代。
Label1.FontSize = 20 这个20的单位是磅?然后转换为像素,当我打印的时候它又由像素转换为磅?
是这个意思吗?如何验证或为什么要经过这一转换?
1英寸 = 72磅
默认屏幕 DPI 为 96,即 1英寸 = 96 像素。其次:
FontSize 是一个兼容属性,其实是 Font.Size,单位由字体决定。最后:
无论字体设计时用什么单位,作为屏幕字体,必须转换为像素单位。所以:
[Property Let] Font.Size = 20
20磅 = 20/72*96 ≈ 27像素
所以实际设备显示的字体大小为 27像素。[Property Get] Font.Size = 27/96*72 = 20.25磅
这就是你最后得到的字体大小。