Déplacer une form avec la souris [Résolu]

scortex84
Messages postés
379
Date d'inscription
mardi 19 mars 2002
Dernière intervention
20 avril 2011
- 17 déc. 2004 à 14:52 - Dernière réponse : Pym Corp
Messages postés
167
Date d'inscription
jeudi 9 décembre 2004
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.
Afficher la suite 

6 réponses

Meilleure réponse
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
- 17 déc. 2004 à 15:13
3
Merci
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

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

jrivet
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
- 17 déc. 2004 à 15:10
0
Merci
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 ;)
-----------------------------------------------------------
scortex84
Messages postés
379
Date d'inscription
mardi 19 mars 2002
Dernière intervention
20 avril 2011
- 17 déc. 2004 à 15:36
0
Merci
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.
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
- 17 déc. 2004 à 15:44
0
Merci
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
scortex84
Messages postés
379
Date d'inscription
mardi 19 mars 2002
Dernière intervention
20 avril 2011
- 17 déc. 2004 à 16:05
0
Merci
C bon :-)

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

Merci !!

seb.
Pym Corp
Messages postés
167
Date d'inscription
jeudi 9 décembre 2004
Dernière intervention
18 novembre 2007
- 17 déc. 2004 à 16:36
0
Merci
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/

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.