VB问题?print的精确定位里的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/04 23:57:15
这些代码效果是把文本输出在窗体顶部与command1之间的中间。

我想问的就是:坐标Y的计算,即下面这2句是如何得到坐标Y是在窗体顶与command1的正中间(问的是过程解释,不是效果)
textH = TextHeight(Text) - Command1.Height / 2
CurrentY = ScaleHeight / 2 - textH

全部过程:
Private Sub Command1_Click()
Dim textH As Integer, textW As Integer
FontSize = 60
Text = "你好"
textW = TextWidth(Text) / 2
textH = TextHeight(Text) - Command1.Height / 2
CurrentX = ScaleWidth / 2 - textW
CurrentY = ScaleHeight / 2 - textH
Print Text
End Sub

CurrentX 和 CurrentY

ScaleWidth Height 就是 窗体的长宽(不算边框)
TextWidth 字符宽
TextHeight 字符高

那么
X的中央就是
(窗体宽/2)减去(内容宽/2)
按照以上算法 你自己看把
Y的中央也是,如果不是窗体为容器 比如0 TO 按钮中间那么就是

(窗体高-按钮高)/2 减去 (内容高/2)

这个算法仔细想想就知道了

如果你要得到的效果是,"你好" 二字出现在按钮和窗体顶部的正中间,那么你上面的代码是错误的
按钮上边缘到窗体顶部的距离是command1.top,因此你的代码要这样改:
Private Sub Command1_Click()
Dim textH As Integer, textW As Integer
FontSize = 60
Text = "你好"
textW = TextWidth(Text) / 2 '计算文本宽/2
textH = TextHeight(Text) / 2'计算文本高/2
CurrentX = ScaleWidth / 2 - textW 'x轴在窗体中间
CurrentY = Command1.Top / 2 - textH'Y轴在按钮和窗体顶部中间
Print Text
End Sub

你的代码的输出位置是在,窗体正中间偏上(command高度一半)的位置!