IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Déplacer une fenêtre


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut Déplacer une fenêtre
    Bonjour à tous,

    J'aimerais avec une label (lbl_deplace) déplacer un formulaire. J'ai essayer la fonction MouseMove, mais cela fait un bug. 4 image du formulaire s'affichent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub lbl_deplace_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)    
        If Button = 1 Then
        index.Left = X
        index.Top = Y
        End If
    End Sub
    Merçi à tous d'avance

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    que veux-tu finalement déplacer ?
    Le Label ou la Form qui le contient, ou les deux ?
    Et que représente index dans ton code ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    En fait je veux rediriger avec le label le formulaire (Index).
    Dés que je clique sur le label.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par r0t0r Voir le message
    En fait je veux rediriger avec le label le formulaire (Index).
    Dés que je clique sur le label.
    1) Ta Form a pour nom Index ?
    Pas vraiment une bonne idée.. tu devrais lui trouver un autre nom (index a une signification précise sous VB)
    2) pourquoi n'utilises-ru pas tout simplement la barre de menu de ta Form (qui inclut précisément le déplacement dans son menu système) ?
    Si tu ne l'affiches pas, évidemment, c'est autre chose et on veillera à te guider dans ton mécanisme... (si vraiment nécessaire...)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    En fait je trouvais cela plus beau en cachant la barre de menu d'origine de windows.

    Je vais corriger l'erreur pour le formulaire. Je l'appelerais "formulaire".

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Tiens...

    Inspire-toi de cet exemple simple et bâclé...
    ici, on utilise l'évènement Mouse_move de la form elle-même ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Option Explicit
    Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
     
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      If Button <> 1 Then Exit Sub
      Dim toto As Integer
      toto = Me.ScaleMode
      Me.ScaleMode = vbTwips
      DoEvents
      If Me.Top + Y <= 0 Then Exit Sub
      If Me.Left + X <= 0 Then Exit Sub
      If Me.Left + X + Me.Width >= Screen.Width Then Exit Sub
      If Me.Top + Y + Me.Height >= Screen.Height Then Exit Sub
      Me.Move Me.Left + X, Me.Top + Y
      SetCursorPos ScaleX(Me.Left, ScaleMode, vbPixels), ScaleY(Me.Top, ScaleMode, vbPixels)
      Me.ScaleMode = toto
    End Sub
     
    Private Sub aie()
      SetCursorPos ScaleX(Me.Left, ScaleMode, vbPixels), ScaleY(Me.Top, ScaleMode, vbPixels)
    End Sub

  7. #7
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Citation Envoyé par r0t0r Voir le message
    Bonjour à tous,

    J'aimerais avec une label (lbl_deplace) déplacer un formulaire. J'ai essayer la fonction MouseMove, mais cela fait un bug. 4 image du formulaire s'affichent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub lbl_deplace_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)    
        If Button = 1 Then
        index.Left = X
        index.Top = Y
        End If
    End Sub
    Merçi à tous d'avance
    Citation Envoyé par r0t0r Voir le message
    En fait je veux rediriger avec le label le formulaire (Index).
    Dés que je clique sur le label.
    Déplacer? Rediriger? Si tu veux que l'on comprenne la question, il faudrait être soit constant, soit plus précis dans tes explications.

    S'il s'agit de déplacer une fenêtre via la souris, la barre de titre de celle-ci contient déjà cette fonctionnalité. Ceci dit, si la barre d'état n'est plus affichée (BorderStyle = None), les coordonnées X et Y peuvent être utiles si tu as le point de départ et un quelconque point lors du déplacement, généralement la position de la souris, pour effectuer le calcul.

    Voici un petit exemple. Une form dont les propriétés son ajustées ainsi:
    • AutoRedraw : True
    • BorderStyle : 0 - None

    Et qui contient les composants suivants
    Un Frame: (tout les autres composants sont placés dans ce Frame - arbitrairement et uniquement pour des raisons esthétiques)
    • Caption : "" (vide)

    Un Label
    • Left, Top, Width et Height :
      de façon à occuper un max de la largeur dans le haut du Frame
    • BackColor : Hilight
    • Caption : "Déplace moi!"
    • ForeColor : HilightText

    2 labels pour afficher les titres de champs de coordonnées (X et Y)
    2 labels pour afficher les coordonnées X et Y, nommés respectivement lblX et lblY
    • BorderStyle : 1 - Fixed Single
    • Caption : "" (vide)

    Un bouton de commande
    • Name : cmdFermer
    • Caption : "&Fermer la fenêtre"


    Code de l'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Option Explicit
    Private rX As Single, rY As Single ' réels
     
    Private Sub Form_Load()
        lblX.Caption = Me.Left
        lblY.Caption = Me.Top
    End Sub
     
    Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, _
                                 X As Single, Y As Single)
        If Button = vbLeftButton And Shift = 0 Then
            rX = X
            rY = Y
        End If
    End Sub
     
    Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, _
                                 X As Single, Y As Single)
        If Button = vbLeftButton And Shift = 0 Then
            Me.Left = Me.Left + (X - rX)
            Me.Top = Me.Top + (Y - rY)
            lblX.Caption = Me.Left
            lblY.Caption = Me.Top
        End If
    End Sub
     
    Private Sub cmdFermer_Click()
        End
    End Sub
    Vue de la fenêtre obtenue en pièce jointe.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut re : remercheiment
    Merçi à zazaraignée et ucfoutu pour leurs aide précieuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déplacer une fenêtre d'un écran vers un autre
    Par scorbo dans le forum Administration système
    Réponses: 0
    Dernier message: 21/10/2008, 18h36
  2. Evenement déplacer une fenêtre
    Par manu_b dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/07/2008, 16h13
  3. [WPF] Déplacer une fenêtre sans barre de titre
    Par tomlev dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 12/09/2007, 11h25
  4. [souris] déplacer une fenêtre sans bords
    Par if_zen dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 15/07/2006, 02h20
  5. Déplacer une fenêtre en bsNone
    Par mobee dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/03/2006, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo