2024年5月31日发(作者:)

VB长度宽度高度单位,width,scaleWidth,Height,scaleHeight,scaleMode

如何理解VB窗体中的scale类属性及width height属性之间的关系

VB中的SCALEHIEGT,SCALEWIDTH,与窗体中的WIDTH,HEIGHT的区别及关

系是许多VB初学者难以理解的。本人在学习DELPHI的过程中也曾经对这类似的概论搞

不清楚,但通过这次对VB中这些类似概念的学习后,可以说是已掌握了这种概念及原理

了。现在回头看DELPHI的相关知识点有豁然开朗的感觉,VB的确是可视化编程入门的最

佳语言。

问题的提出

在VB中默认的度量单位是缇,这是一种跟屏幕分辨率无关的一种度量单位,主要是

用在打印机上的,大概是1缇=1/20磅。其它的一些单位请查看MSDN。使用缇就会给我

们带来一些麻烦,因为我们都习惯于使用像素来度量窗体及控件的大小,并使用显示器当

前的分辨率作参考物来确定窗体的适当大小,当我们想动态地改变窗体的大小的时候我们

该如何确定正确的数值呢,想动态地移动窗体中的控件,该如何确定控件的位置呢?同时,

在VB的窗体中同时存在着这样的一些属性:

scaleWidth,scaleHeight,scaleLeft,scaleTop,scaleMode,Width,Height,他们之间是怎

样的关系,是如何影响窗体中控件的大小的呢?通过下面的解说,我们就能解决上面所提

到的问题。

其实在VB中的窗体内部(除去窗体边框及标标题栏的区域)有一个类似于画布的东

西,它始终是占满整个窗体区域的,他有一个坐标系统,默认的是原点就是窗体的左上角,

坐标是0,0 然后往左伸延的就是X轴,往下就是Y轴了,但是这个坐标的单位默认就是缇,

当然我们是可以修改成其它类型的单位,要修改度量单位的话就要设定窗体的scaleMode

属性。如:设为像素scaleMode=3 。这个坐标系统是用来确定要在什么位置上通过PRINT

等方法来作图的,以及确定在这个容器中的什么位置上放置控件,以及跟窗体宽和高的比

例情况。

VB使用的度量单位共有8种。系统默认的度量单位是缇(Twip,1厘米=576缇),

用户可以根据需要,选择系统提供的其它标准度量单位。度量单位的设置是由窗体或图片

框的ScaleMode属性定义的。其属性值及对应的度量单位及用法见表9-1-1。

表9-1-1 VB的度量单位

属性值 字符常量 说明

0 VbUser 用户自定义类型。若用户使用ScaleWidth、ScaleHeight、ScaleTop、

ScaleLeft设置坐标系统,VB会自动设置ScaleMode为0

1 VbTwips 默认值,以Twip为单位。1英寸=144 Twip

2 VbPoints 以磅(Point)为单位,1英寸=72磅

3 VbPixels 像素(Pixel),即显示器分辨率的最小单位。

4 VbCharacters 字符, 1个字符宽度=120 Twip,1个字符高度=240 Twip

5 VbInches 英寸