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。

解决方案 »

  1.   

    twip和像素的区别吧,大概是1像素=15 twip
      

  2.   


    不同的硬件,twip和像素的转换系数会不一样
      

  3.   

    显示属性设置中,默认的“正常尺寸(96 DPI)”下,就是 1 pixels = 15 twips,符合大多数情况。
    精确的如下:新建工程,在 Form1 中添加代码
    Option ExplicitPrivate 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