在VB6中设置10点字体大小时:
Me.FontName = "Verdana"
Me.FontSize = 10
Debug.Print Me.FontSize
报告的字体大小为9.75。但是,当在VB.NET中完成相同的操作时:
Me.Font = New System.Drawing.Font("Verdana", 10)
Console.WriteLine(Me.Font.Size)
报告的大小是10.有人可以解释这里的区别吗?我的预感是VB6使用的是0.75步,因为我的系统配置为96 DPI,而.NET没有使用上述步骤,或者没有报告其使用情况,但我不确定。
答案 0 :(得分:1)
没有任何错误,两者在技术上都是相同的。它只是“更准确地”报告字体。 96dpi的字体步长为0.75(在120 DPI时为0.6),因此步骤在技术上为9到9.75到10.5。
答案 1 :(得分:0)
Size属性的步骤为72 / GetDeviceCaps(hDC, LOGPIXELSY)
,小字体(96 DPI)为0.75,大字体(120 DPI)为0.6
您可以在OleFont上使用SetRatio来控制前一个表达式中的分母。 GetDeviceCaps
是默认设置。