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

scortex84 379 Messages postés mardi 19 mars 2002Date d'inscription 20 avril 2011 Dernière intervention - 17 déc. 2004 à 14:52 - Dernière réponse : Pym Corp 167 Messages postés jeudi 9 décembre 2004Date d'inscription 18 novembre 2007 Dernière intervention
- 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 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 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é 93 internautes ce mois-ci

jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 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 379 Messages postés mardi 19 mars 2002Date d'inscription 20 avril 2011 Dernière intervention - 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 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 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 379 Messages postés mardi 19 mars 2002Date d'inscription 20 avril 2011 Dernière intervention - 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 167 Messages postés jeudi 9 décembre 2004Date d'inscription 18 novembre 2007 Dernière intervention - 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.