Déplacer une form avec la souris

Résolu
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 - 17 déc. 2004 à 14:52
Pym Corp Messages postés 167 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007 - 17 déc. 2004 à 16:36
Bonjour,

petite question bete : j'ai fais une jolie form sans barre de titre. Donc maintenant je ne peux plus la déplacer tout simplement en cliquant dans la barre de titre.

Comment faire pour simuler le clic dans la barre de titre pour pouvoir déplacer la form à l'aide de la souris ?

Merci d'avance pour votre aide !

Seb.

6 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 33
17 déc. 2004 à 15:13
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "User32" () As Long

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Call ReleaseCapture
SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End If
End Sub

Daniel
2
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 déc. 2004 à 15:10
Salut,

Essaie de voir si ca, ca pourrait t aider:
Dim Bouge As Boolean

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Bouge = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Bouge Then Call Me.Move(Me.Left + X, Me.Top + Y)
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Bouge = False
End Sub

@+
Julien
-----------------------------------------------------------
:big) Essaie ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 1
17 déc. 2004 à 15:36
Bonjour !

Merci à vous deux, mais aucune des deux solutions ne fonctionne. La premiere j'y avais déjà pensé, mais ça ne fonctionne pas, et la seconde encore moins. Mais je suis en VB.NET, alors ptetre que cela vient de là ?

Merci pour votre aide, et je suis toujours à la recherche de la réponse...

Seb.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 33
17 déc. 2004 à 15:44
oui certainement !
pour les API's faut adapter la taille des données et remplacer le type Long par Integer.
sinon la méthode de jrivet devrait marcher aussi.

Dim Bouge As Boolean
Dim xx    As Integer
Dim yy    As Integer

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Bouge = True    xx X: yy Y
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Bouge Then
       Me.Move Me.Left + (X - xx), Me.Top + (Y - yy)
       End If
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Bouge = False
End Sub


Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 1
17 déc. 2004 à 16:05
C bon :-)

La seconde solution etait la bonne, mais il m'a fallu bidouiller pour qu'elle fonctionne sous VB.NEt

Merci !!

seb.
0
Pym Corp Messages postés 167 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007 1
17 déc. 2004 à 16:36
Salut je te conseille ces deux sources vb.net de spy166 :

• Déplacer sans barre de titre de deux façons (api & sans api)
http://www.vbfrance.com/code.aspx?id=7308

• Déplacer sans barre de titre mais avec bordure magnétique (sans api)
http://www.vbfrance.com/code.aspx?ID=18457

http://www.pym-corp.com/
0