【在线等,立给分】VB6窗体大小的值怎么是4800多?
Width 4800多。它和VC的大小是怎么换算的?
谢谢各位高人~~~ Vb基本尺度单位是Twip,VC是使用像素单位
你可以使用窗口或者控件的ScaleX,ScaleY方法进行单位换算
ScaleX、ScaleY 方法
用以将 Form,PictureBox 或 Printer 的宽度或高度值从一种 ScaleMode 属性的度量单位转换到另一种。不支持命名参数。
语法
object.ScaleX (width, fromscale, toscale)
object.ScaleY (height, fromscale, toscale)
ScaleX 和 ScaleY 方法的语法包含如下部分:
部分 描述
object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,则带有焦点的 Form 对象缺省为 object。
width 必需的。为 object 指定被转换的度量单位的数量。
height 必需的。为 object 指定被转换的度量单位的数量。
fromscale 可选的。一个常数或数值,按照下列设置中的描述,指定 object 的 width 或 height 从哪一种坐标系统转换。fromscale 可取的数值与 ScaleMode 属性的数值加上 HiMetric 的新数值相同。
toscale 可选的。一个常数或数值,按照下列“设置值”中的描述,指定 object 的 width 或 height 转换到哪一种坐标系统。toscale 可取的数值与 ScaleMode 属性的数值加上 HiMetric 的新数值相同。
设置值
用于 fromscale 和 toscale 设置值有:
常数 值 描述
vbUser 0 用户定义:指示 object 的宽度和高度设置为自定义值。
vbTwips 1 缇(每逻辑英寸 1440 缇;每逻辑厘米 567 缇)。
vbPoints 2 磅(每逻辑英寸 72 点)。
vbPixels 3 像素 (显示器或打印机分辨率的最小单位)。
vbCharacters 4 字符(水平 = 每单位 120 缇,垂直 = 每单位 240 缇)。
vbInches 5 英寸
vbMillimeters 6 毫米
vbCentimeters 7 厘米
vbHimetric 8 HiMetric。如果省略 fromscale,则 HiMetric 为缺省值。
vbContainerPosition 9 决定控件位置。
vbContainerSize 10 决定控件大小。
说明
ScaleX 和 ScaleY 方法按 fromscale 指定的度量单位取值(width 或 height),并将它转换为 toscale 指定的度量单位下相应的值。
也可以结合 PaintPicture 方法使用 ScaleX 和 ScaleY。
twip和像素的区别吧,大概是1像素=15 twip 注意单位
不同的硬件,twip和像素的转换系数会不一样
我没说一定是15,注意看大概两个字 显示属性设置中,默认的“正常尺寸(96 DPI)”下,就是 1 pixels = 15 twips,符合大多数情况。
精确的如下:新建工程,在 Form1 中添加代码
Option Explicit
Private Sub Form_Load()
Me.AutoRedraw = True
Me.Print "每像素大小:" & Screen.TwipsPerPixelX & "x" & Screen.TwipsPerPixelY
Me.Print "窗体大小(像素):" & Me.ScaleX(Me.Width, vbTwips, vbPixels) & "x" & Me.ScaleY(Me.Height, vbTwips, vbPixels)
End Sub
学习啦。
补充:VB , 控件