VB对象的Width Height和ScaleWidth,ScaleHeight属性有何区别?
VB对象的Width,Height和ScaleWidth,ScaleHeight属性区别为:对象不同、影响不同、基点不同。一、对象不同1、Width,Height属性:Width,Height属性是控件外部的宽度和高度。2、ScaleWidth,ScaleHeight属性:ScaleWidth,ScaleHeight属性是控件内部的宽度和高度。二、影响不同1、Width,Height属性:Width,Height属性受到控件所在的父容器控件的ScaleMode模式影响。2、ScaleWidth,ScaleHeight属性:ScaleWidth,ScaleHeight属性受到控件本身的ScaleMode模式影响。三、基点不同1、Width,Height属性:Width,Height属性的坐标系以窗体的左上角为基点。2、ScaleWidth,ScaleHeight属性:ScaleWidth,ScaleHeight属性的坐标系以控件左上角的左上角为基点。
vb关于自定义坐标的问题,求大神们来解答一下。
所谓自定义坐标,就是由自己来设定坐标的原点、坐标轴的方向、坐标轴的单位等。
VB的默认坐标系统是以窗体的左上角为坐标原点、x轴向右、y轴向下、单位为缇。
如果要使用数学中常用的四象限的坐标系统则是以窗体中心为原点,x轴向右、y轴向上,单位最好为像素。
Form1.Scale
(0,
500)
-
(500,
0)
的意思就是窗体Form1的左上角坐标为(0,
500),右下角坐标为(500,
0),也就是说右上角的坐标为(500,
500),左下角的坐标为(0,
0),从中可看出,这个自定义坐标系统的原点在窗体的左下角,x轴向右,y轴向上,x轴的单位是ScaleWidth/500,y轴的单位是ScaleHeight/500(也就是说x轴的1与y轴的1是不相等的,除非窗体的内部区域是正方形)。然后后面的绘图命令就会根据这个新的坐标系统来工作了,比如你在(0,
0)的位置用PSet画个点,它会画在左下角,而不是左上角!!!
你所说的窗体的坐标系统是这个窗体相对于操作系统而言的(即对外的),而窗体的内部坐标系统则是相对于其内部的控件以及各种绘图命令而言的(即对内的)。就好比你的房子位于北纬xxx度,东经xxx度,而你房间里的沙发距离墙壁xx厘米,这是两套完全不相关的坐标系统好不好?!

