截获WM_SIZE消息, 自己处理,
Delphi中很方便(控件有属性),VB我没有用过,最基本的是WM_SIZE

解决方案 »

  1.   

    MSDN的例程Resize 事件示例
    本例在任何调整窗体大小时的时候,都将自动调整一个 TextBox 控件的大小以填充该窗体。要尝试这个例子,可以将代码粘贴到包含 TextBox 的窗体声明部分。 设置 TextBox 控件的 MultiLine 属性为 True,ScrollBars 属性为 3,BorderStyle 属性为 0,然后按F5键并调整窗体大小。Private Sub Form_Load ()
       Text1.Text = ""   ' 清除文本。
    End SubPrivate Sub Form_Resize ()
       Text1.Move 0,0, ScaleWidth, ScaleHeight
    End Sub
      

  2.   

    要么自己编程,要么使用类似MBFormEx这样的控件。
      

  3.   

    1.通常都是在FORM的RESIZE中编写相应的代码,在窗体改变尺寸后,控件的尺寸动态的改变,多用MOVE方法;
    2.要达到这种效果,窗体中的控件不要太复杂,如果太多,控制起来会不太方便,指代码较多;
    3.注意特殊处理,如窗体最小话后。
    自己试试啦。
      

  4.   

    把这些控件的坐标位置用变量来控制.
    在窗体的resize 事件中
    把这些变量重新设置.
    记住使用窗体长宽高的百分比来代替实际坐标.
      

  5.   

    Form_Resize ()
    设置控件间的位置是相对的,
    例:LABEL1。TOP=FORM1。HEIGHT/2
    另外要加一句 NO ERROR RESUME NEXT
    在窗体最小化时就不会出错!
      

  6.   

    我用过一个resize的ocx,resize.ocx你去下载,放到窗体中,任意的东西都会resize!
    包括字体的大小!很好用,以前在vb憩园好象有,vb2000好象有?
      

  7.   

    可怜...如果你用Delphi或BCB就好了,不然你做的工作太多了...@_@
      

  8.   

    呵呵,的确如Lin所言。
    Delphi或Bcb中,只是设定一个Form的属性就全部OK:-)
      

  9.   

    Private Sub Form_Resize ()
    dim control1 as control,m1 as single,m2 as single
    m1=form.width/form.width(改变前的)
    m2=form.height/form.height(改变前的)
    for each control1 in form.controls
        control1.left=control1.left*m1
        control1.top=control1.top*m2
        control1.height=control1.height*m2
        control1.width=control1.width*m1
    next
    End Sub
      

  10.   

    在VB的FORM-RESIZE加入代码即可。