在vb6中,有几个比较特别的对象,比如Form,PictureBox,以及Printer都具有控制自己内部的其它对象的坐标系统。例如,命令按钮(Command Button)的Top和Left属性决定了它在窗体坐标系统的位置。在默认情况下,坐标系统使用的是twip单位,即1个twip等于1英尺的1/1440,且原始位置(0,0)为窗体的左上角,而且从左至右,X轴逐渐增加;从上到下,Y轴逐渐增加。
然而,很多时候你都会需要改变屏幕坐标系统。在图形化程序开发中,当你需要将图形位置与程序的实际数据匹配时,改变窗体或者其它对象的位置显得相当重要。
为了在不影响原始坐标的情况下改变坐标单位,可以使用ScaleMode属性。你只需要定义一些vb常量,而很多常量都是自动定义的。
vbUser(custom,more on this soon)
vbTwips
vbPoints(a printer’s unit, one point=1/72 inch)
vbPixels
vbCharacters (120twips horizontally, 240 vertically)
vbMillimeters
vbCentimeters
你也可以使用Scale方法移动坐标原始位置和改变坐标轴方向,以下该方法:
Scale(x1,y1)-(x2,y2)
X1和y1为对象左上角的新坐标位置;
X2和y2为对象右下角的新坐标位置;
现在让我们看看一些范例。这一方法将使原点处于左上角,但将坐标系统单位改变为窗体大小的1/100:
From.Scale(0,0)-(100,100)
以下调用将移动原点到窗体的左下角,并旋转Y轴:
From1.Scale(0,100)-(100, 0)
以下调用将移动原点到窗体的正中心,并旋转Y轴,然后将坐标单位转换为窗体大小的1/5000:
From1.Scale(-2500,2500)-(2500,2500)