当前位置:编程学习 > VB >>

【在线等,立给分】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 注意单位
引用 2 楼 clear_zero 的回复:
twip和像素的区别吧,大概是1像素=15 twip


不同的硬件,twip和像素的转换系数会不一样
引用 4 楼 worldy 的回复:
引用 2 楼 clear_zero 的回复:
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

通常输出为:
每像素大小:15x15
窗体大小(像素):320x240
引用 6 楼 tiger_zhao 的回复:
显示属性设置中,默认的“正常尺寸(96 DPI)”下,就是 1 pixels = 15 twips,符合大多数情况。
精确的如下:新建工程,在 Form1 中添加代码

VB code
Option Explicit

Private Sub Form_Load()
    Me.AutoRedraw = True
    Me.Print "每像素大小:" & Scree……

学习啦。
补充:VB ,  控件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,