各位帮忙,老板着急要我用VB做一个这样的界面由五个窗口组成,累似Delphi2007风格的界面,
中间一个主窗口,左右两边各两个,需要各窗口可以由
Splitter自由拖动大小.
我是VB新手,谢谢.示例如下:
菜单
----------------------------
      |           |
Form1 |           | Form3
      |           |
      |           |
------- Main Form ----------
      |           |
      |           |
Form2 |           | Form4
      |           |
----------------------------

解决方案 »

  1.   

    上面的图错位,再重新修改一下
    示例如下: 
    菜单 
    ------------------------------ 
             ¦            ¦ 
    Form1  ¦            ¦ Form3 
             ¦            ¦ 
             ¦            ¦ 
    ------- Main Form ------------ 
             ¦            ¦ 
             ¦            ¦ 
    Form2  ¦            ¦ Form4 
             ¦            ¦ 
    ------------------------------
      

  2.   

    分成最后两半的窗体的例子1)  在VB中新建一个标准EXE工程; 
    2)  画出 2 个 Frame 控件,分别改名为lstPers 和lstTel,去掉 Caption。 
    3)  画出一个瘦高形状的图片Picture1,把图片的MouseIcon改为左右箭头,用来做切分条,改名为Splitter;
    4)  在Form1中编写以下代码:Option Explicit
          '定义需要使用的变量
          Private Const P_ECART = 20
          Private x1 As Integer, x2 As Integer
          Private y1 As Integer, y2 As Integer
          Private width1 As Integer, width2 As Integer
          Private height1 As Integer, height2 As Integer
          Private glbfrmInSizeX As Long
     
          '初始化窗体和变量
          Private Sub Form_Load()
            glbfrmInSizeX = &H7FFFFFFF
            Form_Resize
          End Sub
     
          '当切分条Splitter移动的时候
          Private Sub splitter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
           If glbfrmInSizeX <> &H7FFFFFFF Then
            If CLng(X) <> glbfrmInSizeX Then
                Splitter.Move Splitter.Left + X, y1, P_ECART, ScaleHeight - StatusBar1.Height - 2
                glbfrmInSizeX = CLng(X)
            End If
           End If
          End Sub
     
          '当鼠标松开切分条Splitter的时候
          Private Sub splitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
           If glbfrmInSizeX <> &H7FFFFFFF Then
            If CLng(X) <> glbfrmInSizeX Then
                Splitter.Move Splitter.Left + X, y1, P_ECART, ScaleHeight - StatusBar1.Height - 2
            End If
            glbfrmInSizeX = &H7FFFFFFF
            Splitter.BackColor = &H8000000F
            If Splitter.Left > 60 And Splitter.Left < (ScaleWidth - 60) Then
                lstPers.Width = Splitter.Left - lstPers.Left
            ElseIf Splitter.Left < 60 Then
                lstPers.Width = 60
            Else
                lstPers.Width = ScaleWidth - 60
            End If
            Form_Resize
           End If
          End Sub
     
          '当鼠标按下切分条Splitter的时候
          Private Sub splitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
           If Button = vbLeftButton Then
            Splitter.BackColor = &H808080
            glbfrmInSizeX = CLng(X)
           Else
            If glbfrmInSizeX <> &H7FFFFFFF Then
                splitter_MouseUp Button, Shift, X, Y
            End If
            glbfrmInSizeX = &H7FFFFFFF
           End If
          End Sub
     
          '窗体的大小改变
          Private Sub Form_Resize()
           Const B_ECART = 1
           On Error Resume Next
           '赋值
           y1 = B_ECART
           height1 = ScaleHeight - StatusBar1.Height - B_ECART * 2
           x1 = B_ECART
           width1 = lstPers.Width
           x2 = x1 + lstPers.Width + P_ECART - 1
           width2 = ScaleWidth - x2 - B_ECART
           'ListBox和Splitter适应位置
           lstPers.Move x1 - 1, y1, width1, height1
           lstTel.Move x2, y1, width2 + 1, height1
           Splitter.Move x1 + lstPers.Width - 1, y1, P_ECART, height1
         End Sub
      

  3.   

    顶那个发代码的。我虽然英文很烂很烂,但至少明白DOCK这个词的意思。