VB坐标问题请问VB中Form的 scaleHeight和height 以及 scalewidth 和width 是个什么样的关系.比如 我设置Form 的(Width,Height)= (4000,4000),(ScaleWidth,ScaleHeight)=(100,100)当我改变Form的 (Width,Height) = (5000,5000),Form

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 08:05:30
VB坐标问题请问VB中Form的 scaleHeight和height 以及 scalewidth 和width 是个什么样的关系.比如 我设置Form 的(Width,Height)= (4000,4000),(ScaleWidth,ScaleHeight)=(100,100)当我改变Form的 (Width,Height) = (5000,5000),Form

VB坐标问题请问VB中Form的 scaleHeight和height 以及 scalewidth 和width 是个什么样的关系.比如 我设置Form 的(Width,Height)= (4000,4000),(ScaleWidth,ScaleHeight)=(100,100)当我改变Form的 (Width,Height) = (5000,5000),Form
VB坐标问题
请问VB中Form的 scaleHeight和height 以及 scalewidth 和width 是个什么样的关系.
比如 我设置Form 的(Width,Height)= (4000,4000),(ScaleWidth,ScaleHeight)=(100,100)当我改变Form的 (Width,Height) = (5000,5000),Form的(ScaleWidth,ScaleHeight)就自动变成了(128.821,125.4826),为什么会这样呢,为什么(ScaleWidth,ScaleHeight) 会变成上述数值呢?SCaleMode 选的是0

VB坐标问题请问VB中Form的 scaleHeight和height 以及 scalewidth 和width 是个什么样的关系.比如 我设置Form 的(Width,Height)= (4000,4000),(ScaleWidth,ScaleHeight)=(100,100)当我改变Form的 (Width,Height) = (5000,5000),Form
Width、Height是窗体的整体宽度和高度,ScaleWidth和ScaleHeight则是窗体中客户区(也就是去掉边框、标题栏、菜单等后可实际利用的区域)的宽度和高度.
ScaleMode选0,表示客户区采用的是用户自定义坐标系统,如果设ScaleWidth=100,就表示窗体客户区的宽度为100单位,而这个单位究竟相当于多少缇(VB的默认单位)呢?我们可以把ScaleMode重新选为默认的1,这时你会发现当Width=4000时,ScaleWidth=3885,也就是说你自定义的100宽度单位=3885缇,现在让Width=5000,这时ScaleWidth=4875,也就是说客户区的宽度增长了4875/3885=1.254826倍,那么你自定义的宽度单位自然也就变为100*1.254826=125.4826咯!高度的情况也类似,由于这时候要考虑窗体标题栏的情况,所以虽然Width和Height是相等的数值,但ScaleWidth和ScaleHeight的数值(按缇为单位算)是不相等的,所以你自定义的100高度单位与100宽度单位也是两种不同的长度单位.具体计算如下:
当Height=4000缇时,ScaleHeight=3495缇,
当Height=5000缇时,ScaleHeight=4485缇,
因此客户区高度增长了 4485/3495=1.283262
也就是自定义的客户区高度为100*1.283262=128.3262
你会发现我计算出的高度和你的128.821有点差别,这是因为你和我的XP系统采用的桌面主题不同,这样标题栏的高度也会有所不同,但误差也不是很大.
不知道你现在看明白了没有?
另外,你怎么会得出“窗体外边框比窗体内部大很多”的说法呢?1000米和1公里,光从数字上来看,1000比1大很多,但你别忘了,它们采用的是不同的单位!