Splitter de fenêtre

Description

C'est un exemple de splitter de fenêtre, comme entre l'arborescence et le conteun du dossier dans l'Explorer de widows. Les controles à gauches et à droite sont plus ou moins grands. S vous n'avez pas compris (c'est pas facile à expliquer), jetez un voup d'oeil à la capture ;)

Tout est dans le zip, je mets la source ici pour les pressés ;)

Source / Exemple :


' Tout est dans le zip

Dim Resizing As Boolean

Private Sub Form_Load()
    ' Je le laisse à 1 pour pouvoir la voir en création ;)
    Picture1.BorderStyle = 0
End Sub

Private Sub Form_Resize()
    ' Hop, en haut à gauche...
    Text1.Top = 0
    Text1.Left = 0
    
    ' Puis on règle les dimentions...
    Text1.Height = Me.ScaleHeight   ' Max de hhaut
    Text1.Width = Picture1.Left     ' Jusqu'au Picture1
    
    ' Hop, après le Picture1
    Text2.Top = 0
    Text2.Left = Picture1.Left + Picture1.Width
    
    ' Puis on règle les dimentions...
    Text2.Height = Me.ScaleHeight
    Text2.Width = Me.ScaleWidth - Picture1.Left - Picture1.Width
    
    ' On règle la hauteur de Picture1
    Picture1.Height = Me.ScaleHeight
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Resizing = True
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Resizing Then
        DoEvents
        ' Si on sort de la form avec 500 twips de marge...
        If Picture1.Left + X <= Me.ScaleWidth - 500 And Picture1.Left + X >= 500 Then
            ' We place the PicturePox at the right place
            Picture1.Left = Picture1.Left + X
        Else
            ' On se met à la limite
            If Picture1.Left + X >= Me.ScaleWidth - 500 Then
                
                Picture1.Left = Me.ScaleWidth - 500
            Else
                Picture1.Left = 500
            End If
        End If
        
        ' On redimentionne les Text1 et Text2
        Text1.Width = Picture1.Left
        Text2.Width = Me.ScaleWidth - Picture1.Left - Picture1.Width
        Text2.Left = Picture1.Left + Picture1.Width
    End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Resizing = False
End Sub

Conclusion :


Violà. J'espère que ce n'est pas une source déjà postée (je n'ai rien trouvé d'autre y ressemblant en tous cas...). Peut-être un jour un OCX...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.