VB长度宽度高度单位

上传人:hs****ma 文档编号:486430296 上传时间:2024-02-12 格式:DOCX 页数:3 大小:13.64KB
返回 下载 相关 举报
VB长度宽度高度单位_第1页
第1页 / 共3页
VB长度宽度高度单位_第2页
第2页 / 共3页
VB长度宽度高度单位_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《VB长度宽度高度单位》由会员分享,可在线阅读,更多相关《VB长度宽度高度单位(3页珍藏版)》请在金锄头文库上搜索。

1、VB 长 度 宽 度 高 度 单位,width,scaleWidth,Height,scaleHeight,scaleMode如何理解VB窗体中的scale类属性及width height属性之间的关系VB中的SCALEHIEGT, SCALEWIDTH,与窗体中的WIDTH, HEIGHT的区别及关系 是许多VB初学者难以理解的。本人在学习DELPHI的过程中也曾经对这类似的概论搞不清 楚,但通过这次对VB中这些类似概念的学习后,可以说是已掌握了这种概念及原理了。现 在回头看DELPHI的相关知识点有豁然开朗的感觉,VB的确是可视化编程入门的最佳语言。问题的提出在VB中默认的度量单位是缇,这

2、是一种跟屏幕分辨率无关的一种度量单位,主要是用在 打印机上的,大概是1缇=1/20磅。其它的一些单位请查看MSDN。使用缇就会给我们带来 一些麻烦,因为我们都习惯于使用像素来度量窗体及控件的大小,并使用显示器当前的分辨 率作参考物来确定窗体的适当大小,当我们想动态地改变窗体的大小的时候我们该如何确定 正确的数值呢,想动态地移动窗体中的控件,该如何确定控件的位置呢?同时,在VB的窗 体中同时存在着这样的一些属性: scaleWidth,scaleHeight,scaleLeft,scaleTop,scaleMode,Width,Height,他们之间是怎样的关系, 是如何影响窗体中控件的大小的呢

3、?通过下面的解说,我们就能解决上面所提到的问题。其实在VB中的窗体内部(除去窗体边框及标标题栏的区域)有一个类似于画布的东西, 它始终是占满整个窗体区域的,他有一个坐标系统,默认的是原点就是窗体的左上角,坐标 是0,0然后往左伸延的就是X轴,往下就是Y轴了,但是这个坐标的单位默认就是缇,当 然我们是可以修改成其它类型的单位,要修改度量单位的话就要设定窗体的scaleMode属 性。如:设为像素scaleMode=3。这个坐标系统是用来确定要在什么位置上通过PRINT等 方法来作图的,以及确定在这个容器中的什么位置上放置控件,以及跟窗体宽和高的比例情 况。VB使用的度量单位共有8种。系统默认的度

4、量单位是缇(Twip, 1厘米=576缇),用户可 以根据需要,选择系统提供的其它标准度量单位。度量单位的设置是由窗体或图片框的 ScaleMode属性定义的。其属性值及对应的度量单位及用法见表9-1-1。表9-1-1 VB的度量单位 属性值字符常量说明 0 VbUser 用户自定义类型。若用户使用 ScaleWidth、ScaleHeight、ScaleTop、ScaleLeft 设置 坐标系统,VB会自动设置ScaleMode为01 VbTwips默认值,以Twip为单位。1英寸=144 Twip2 VbPoints以磅(Point)为单位,1英寸=72磅3 VbPixels像素(Pixe

5、l),即显示器分辨率的最小单位。4 VbCharacters字符,1个字符宽度=120 Twip, 1个字符高度=240 Twip5 VbInches 英寸6 VbMillimeters 毫米7 VbCentimeters 厘米说明:上表中,除了0和3外,其余规格均可用于打印机,所使用的单位长度就是打印机上输 出的长度。ScaleMode属性可以在设计阶段在属性窗口设置,也可以通过程序代码设置。例如: Forml.ScaleMode=5窗体坐标系统以英寸为单位Picturel.ScaleMode=7 图片框坐标系统以厘米为单位预备知识其实在VB中的窗体内部(除去窗体边框及标标题栏的区域)有一个

6、类似于画布的东西, 它始终是占满整个窗体区域的,他有一个坐标系统,默认的是原点就是窗体的左上角,坐标 是0,0然后往左伸延的就是X轴,往下就是Y轴了,但是这个坐标的单位默认就是缇,当 然我们是可以修改成其它类型的单位,要修改度量单位的话就要设定窗体的scaleMode属 性。如:设为像素scaleMode=3。这个坐标系统是用来确定要在什么位置上通过PRINT等方 法来作图的,以及确定在这个容器中的什么位置上放置控件,以及跟窗体宽和高的比例情况。 scale类属性的作用清楚了窗体有这样一个画布及它的坐标后,我们再来看看有关这个坐标系统的属性。这些 scale类型属性主要是用来设定画布坐标系统的

7、数值跟窗体的高宽数值比例情况的。具体是 怎样的关系及怎样影响在下面有论说。scaleLeft,scaleTop这两个属性是用来设定这个坐标系 统的原点位置的,系统默认的scaleLeft,scaleTop是0,也就是说原点在窗体的左上角了,坐 标系统只有大于0的那一块坐标,这样的好处是可以很直观地使用这个坐标系统因为参照点 是0且是从窗体的左上角开始的。如果把这两个值设定为大于0的话,画布的坐标就有正负 区域了,这样就更像我们数学上的坐标系统了。scaleMode用于设定坐标轴的度量单位。width,Height 的作用这两个属性是用于设定窗体的宽和高,他们的单位始终是缇,会直接影响到画布的大

8、小及 坐标的比例情况,要动态设置窗体的大小也只能通过这两个属性来设定。这些属性的关系默认情况下,窗体的宽和高是跟窗体上的画布的宽和高是一样大小的,且画布的坐标原点 就是窗体的左上角。也就是说,画布的宽和窗体的宽是1: 1的关系,也就是说画布的1缇 宽度相当于窗体的1缇宽度。那么当我们在窗体上用print.circle (500,500),200来画一 个圆的时候,原点就是在距窗体顶部500个缇,左边500个缇,半径是200个缇。现在我们 尝试把窗体上的scaleHeight,scaleWidth修改为原来的1/2,现在也是用同样的方法来画一个 圆,对比这一下现在的圆跟修改前的圆,可以发现当前圆

9、的半径比原来的扩大了一倍,而且 圆心的位置也改变了。同样的参数为什么会有不一要结果呢?这就是scaleHeight scaleWidth 起的作用,假如窗体原本的width是1000缇,scaleWidth也是1000缇,也就是说他们是1: 1的关系,我们用print.circle (500, 500),200在画布上画出来的圆所用的尺寸单位是1: 1的,明确一点说就是在画布宽上所画的一缇就是窗体宽度的一缇,但修改了 scaleWidth后, 比如说是原来值的一半,情况就不一样了,画布跟窗体的比例就变成是1: 2 了,在画布看 来,要用原来数值的一半来表示窗体的宽,那么只能是1个缇来表示窗体w

10、idth的两个缇了, 这样的话如果还是用原来参数来使用print方法来作圆的话,出来的圆就是原来的两倍了。 情况就有点像要在一张白张上把整个中国地图画出来一样,张上的一毫米就相当于实际十万 八千公里了。这就是scale属性跟窗体width,height之间或关系了。缇跟像素的关系 我们可以通过VB的系统对像screen的twipPerPixersX及twipPerPixersX属性来返回当前分 辨率下每一像素所占缇,默认情况下应该是15。但这个值是不是固定的呢?答案是不的, 屏幕也是一个画布,同时也像窗体一样有高和宽,要返回15的前提条件是scaleWidth跟width 是 1:1,scaleHeight 跟 height 也是 1:1。总结窗体上有一个画布,它的坐标系统默认是跟窗体一样的,但可以通过scale类属性可以去 修改。通过这些scale类属性我们可以开发出一种具有图形放大缩小功能的程序,只要把作 图的方法中参数保持不变,动态改变scale属性就可以达到目的,这种关系是成反比的,也 就是说参数不变,scale减小的话图形就放大。这类程序的例子就像是股票分析软件中的成 交量图。另:DELPHI也有类似的画布机制。原理是基本上一致的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号