刻度的转换

使用 ScaleX 和 ScaleY 方法,用来将一种刻度模式转换为另一种刻度模式。这些方法的语法如下:

[object.]ScaleX (value [, fromScale [, toScale]]

[object.]ScaleY (value [, fromScale[,toScale]]

目标 object 是窗体、图片框或 Printer 对象。value 表示在由刻度模式 fromScale 指定的坐标系统中。返回值表示在由 toScale 指定的刻度模式中,或者,如果 toScale 省略时,表示在 object 的刻度模式中。如果 fromScale 被省略,则 value 的刻度模式是 HIMETRIC。

HIMETRIC 是一种指定了物理尺寸的刻度模式。例如,相应 10 厘米长的一条直线,按 HIMETRIC 单位的长度数是 10,000。无论视频显示区的大小如何,在屏幕上绘出的直线都是 10 厘米长。关于 HIMETRIC 刻度模式和物理尺寸的详细内容,请参阅 Microsoft Windows 的 SDK。

以下语句把 MyPic 图片框控件的内容宽度,拉伸到原来的两倍。MyPic.Picture.Width 返回包含在图片控件中的图片的宽度,这是 HIMETRIC 数值,需要转换为 Form1 的刻度模式。

Form1.PaintPicture MyPic.Picture, X, Y, _
   Form1.ScaleX(MyPic.Picture.Width) * 2

下例展示了指定窗体宽度为 np 像素宽的两种相同途径。

'窗体的 ScaleMode 设为像素。
ScaleMode = vbPixels

'选项 1'临时地把窗体的 ScaleMode 设为缇。
ScaleMode = vbTwips
'ScaleX() 返回以缇为单位的值。
Width = Width - ScaleWidth + ScaleX(np, vbPixels)
'把窗体的 ScaleMode 设回到像素。
ScaleMode = vbPixels
'选项 2'转换像素为缇,但不改变窗体的 ScaleModeWidth = Width + ScaleX(np - ScaleWidth, vbPixels, _
   vbTwips)

详细信息 请参阅《语言参考》的“ScaleX 属性”或“ScaleY 属性”。