Deplacer une feuille sans barre de titre ou un objet, reduire agrandir une feuille avec mouse_move

Soyez le premier à donner votre avis sur cette source.

Vue 5 393 fois - Téléchargée 518 fois

Description

Ce code permet de déplacer des feuilles sans la barre de titre, ou bien des objets, d'agrandir une feuille en glissant le pointeur sur le bord de celle-ci, et de la réduire en glissant le pointeur en dehors de celle-ci, dans un projet comportant plusieur feuilles.

Source / Exemple :


'DANS UN MODULE :

Public fz As Integer, gz As Integer, hz As Integer

Sub MeMove(m As Object, Button As Integer, X As Single, Y As Single) 'déplacement
If Button = 0 Then
fz = 0
gz = 0
hz = 0
End If

If Button = 1 And Fz = 0 Then
fz = 1 'gz passe à 1 et verrouille l'enregistrement des valeurs X et Y initiale
gz = X
hz = Y
End If

If Button = 1 And fz = 1 Then
m.Move m.Left + (X - gz), m.Top + (Y - hz)
End If

If InOutForm(m, X, Y) = 1 Then
'lorsque le pointeur sort de la feuille celle-ci prend les dimensions spécifiées et toutes les valeurs de propriétés "m.quelque chose = ?" souhaitées
    m.width = ?
    m.height = ?
    m.?=?
    Else
'lorsque le pointeur entre dans la feuille celle-ci s'agrandit au valeurs spécifiées par la procédure "Sub Maximise" de celle-ci
    m.Maximise
    End If
End Sub

Function InOutForm(m As Object, X, Y) As Integer 
'InOutForm prend la valeur 1 lorsque le pointeur passe sur le bord de la feuille
Lrg = 30
a = m.ScaleWidth - Lrg
b = m.ScaleHeight - Lrg
InOutForm = 0
If X < Lrg Or X > a Or Y < Lrg Or Y > b Then InOutForm = 1
End Function

'DANS UNE FEUILLE (ou chaques feuilles filles ou pas d'ailleurs d'un projet !):

Sub Maximise()
'Spécifier ici les dimensions de la feuille concernée
Me.Height = ?
Me.Width = ?
End Sub

'Dans l'événement move de la feuille, insérer l'apel de procédure MeMove du module, qui gère le déplacement et l'affichage de la feuille
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call MeMove(Me, Button, X, Y)
End Sub

Conclusion :


J'ai intégré ce code dans Corde Virtuelle, une application Midi comportant une douzaine de feuille filles constituant les outils de l'application. L'espace est de cette façon bien optimisé. Les fenêtres s'agrandissent et se réduisent en un minimum de temps, pas de bouton, pas de clique, elles se positionnent docilement en plaçant le pointeur sur n'importe quel point de la feuille.

WWW.CORDEVIRTUELLE.COM
Did@cordevirtuelle.com

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.