VB中没有自带的分割条控件,本人一直用的是一个第三方的分割条控件,但发现在MDI窗体中(用PictureBox做的容器)该控件会失效,请问是什么原因?    现在想自己做分割条,请问谁可以提供大致思路!
    如果哪位能提供可以在MDI中用的分割条的OCX!
    不胜感激!!!  
     qq_558996,哪位需要我目前用的分割条,也可以与我联系!

解决方案 »

  1.   

    用 VB 的应用程序向导生成一个资源管理器的框架,里面就有分割条代码,是拿 PictureBox 做的。
    或者推荐一个控件: ActiveResizer
      

  2.   

    楼上的兄弟 我看了一下  没有找到分割条的什么代码啊! 而且ActiveResizer也不是分割条控件啊!不能当分割条用的!
      

  3.   

    Private Const SPLITWIDTH As Single = 40     '分割条宽度'********************************
    ' 私有变量
    '********************************
    Private mHorizontalSplit As Boolean         '水平鼠标指针
    Private mControl1 As Object                 '分割控件1
    Private mControl2 As Object                 '分割控件2
    Private mSplitPercent As Single             '分割百分比
    Public Property Let HorizontalSplit(val As Boolean)
        mHorizontalSplit = val
        If mHorizontalSplit Then
            Splitter.MousePointer = 7       '鼠标指针为:N-S
        Else
            Splitter.MousePointer = 9       '鼠标指针为:W-E
        End If
        PropertyChanged "HorizontalSplit"
        UserControl_Resize
    End Property
    '********************************
    ' 默认属性
    '********************************
    Private Sub UserControl_InitProperties()
        HorizontalSplit = False         '垂直分割
        SplitPercent = 50
        Splitter.BackColor = &HFF8080
    End Sub'********************************
    ' 加载属性
    '********************************
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)On Error Resume Next
        HorizontalSplit = PropBag.ReadProperty("HorizontalSplit", False)
        SplitPercent = PropBag.ReadProperty("SplitPercent", 50)End Sub'********************************
    ' 保存属性
    '********************************
    Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
        
    On Error Resume Next
        PropBag.WriteProperty "HorizontalSplit", HorizontalSplit, False
        PropBag.WriteProperty "SplitPercent", SplitPercent, 50
        
    End Sub
    '********************************
    ' 下面三个subs用来手动改变
    ' 分割窗体大小
    '********************************
    Private Sub splitter_mousedown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Splitter.BackColor = vbBlue     ' 改变分割条颜色,使分割条可见
        Splitter.ZOrder
    End SubPrivate Sub splitter_mousemove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        
        If Button = vbLeftButton Then
            
            If mHorizontalSplit Then        ' 水平分割
                Y = Splitter.Top - (SPLITWIDTH - Y)
                mSplitPercent = Y / UserControl.Height
                Splitter.Move 0, Y
            Else                                    ' 垂直分割
                X = Splitter.Left - (SPLITWIDTH - X)
                mSplitPercent = X / UserControl.Width
                Splitter.Move X
            End If
            
            If mSplitPercent < 0.1 Then mSplitPercent = 0.1     ' 设置最大和最小分割百分比
            If mSplitPercent > 0.9 Then mSplitPercent = 0.9
        
        End If
        
    End SubPrivate Sub splitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Splitter.BackColor = &HFF8080        ' 使分割条颜色复原
        UserControl_Resize                          ' 更新面板
    End Sub
    自己优化一下吧!!!我用的还行!!!!!
      

  4.   

    上网搜索
    或者给我来信
    [email protected]
      

  5.   

    Option ExplicitPrivate Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ReleaseCapture Lib "user32" () As Long'加三个PICTUREBOX控件,将其中一个作为分隔条,改名为:picSplit
    Private Sub Form_Load()
        Picture1.Left = 60
        Picture1.Top = 60
        Picture2.Top = 60
        picSplit.Left = Picture1.Left + Picture1.Width + 30
        picSplit.Width = 60
        picSplit.BorderStyle = 0
        Picture2.Left = picSplit.Left + picSplit.Width '+ 50
        Picture1.Height = 5700
        Picture2.Height = 5700
        picSplit.Top = 60
        picSplit.Height = 5700
        picSplit.MousePointer = vbSizeWE
    End SubPrivate Sub picSplit_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    On Error Resume Next
        If Button = vbLeftButton Then
            SetCapture picSplit.hwnd
            picSplit.Tag = x
            picSplit.BackColor = &HFF8080
        End If
    End SubPrivate Sub picSplit_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    On Error Resume Next
        If Button = vbLeftButton Then
            If picSplit.Left >= (100 - x) And picSplit.Left <= (Me.ScaleWidth - 100 - x) Then picSplit.Left = picSplit.Left + x - CInt(picSplit.Tag)
        End If
    End SubPrivate Sub picSplit_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    On Error Resume Next
        If Button = vbLeftButton Then
            Picture1.Width = picSplit.Left - 80
            Picture2.Left = picSplit.Left + 50
            Picture2.Width = Width - picSplit.Left - 250
            
            picSplit.BackColor = &H8000000F
            ReleaseCapture
        End If
    End Sub
      

  6.   

    cuizm(射天狼)  
    厉害 收藏了===============================
    -= www.PoP4u.net =-
      

  7.   

    一个可以在窗口中建立分割栏的控件,包含源程序以及范例http://www.applevb.com/sourcecode/splittercontrol.zip