我是这样建立工程的:
File->New Project->VB Application Wizad,采用默认参数建立单文档界面应用程序,在一个菜单项加入语句:
MsgBox frmMain.ScaleWidth & " " & frmMain.ScaleHeight
显示主窗体的大小.
运行该程序,调整窗口大小,点击该菜单项,为什么显示的数字不变化?(按道理说,改变了窗体的大小,信息框弹出的数字也应随之产生变化)
我又试了一种方法:不用向导建立工程,而是手工建立工程,按上述方法运行,显示的数字会随窗体大小的改变而发生变化.
请问:是我理解错了,还是有哪个地方设置不到位呢?

解决方案 »

  1.   

    这二个属性是返回或设置对象内部的水平 (ScaleWidth) 或垂直 (ScaleHeight) 度量单位.
    返回或设置窗体大小应该使用 Height 和 Width 属性.
      

  2.   

    使用Height和Width这两个属性也出现同样的现象.
    请二楼楼主按我所说的方法试一下.
    我真的弄不懂为什么了.
    请高手多多指点.
      

  3.   

    利用向导生成的工程,主窗口是这样启动的:
    Public fMainForm As frmMain
    Sub Main()
        Set fMainForm = New frmMain
        Load fMainForm
        fMainForm.Show
    End Sub如果把该模块改为以下代码就不会出现上述情况了:
    Sub Main()
        Load frmMain
        frmMain.Show
    End Sub请问这是为什么?有没有什么办法可以解决?
      

  4.   

    汗,老兄对面向对象的理解还不太通,当然也怪VB。
    VB的窗体可以直接当作对象用,也可以当作类来用。自动生成的是当作类来用。
    Sub Main()
        Set fMainForm = New frmMain '创建frmMain的实例并实例化
        Load fMainForm '载入新实例
        fMainForm.Show '显示该窗体的实例
    End Sub因此要:
    MsgBox fMainForm.ScaleWidth & " " & fMainForm.ScaleHeight