DÉPLACER UNE FORM AUTREMENT QU'AVEC LA BARRE DE TITRE WINDOWS
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007
-
2 juin 2003 à 21:24
djgab21
Messages postés66Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention19 mai 2011
-
24 févr. 2008 à 20:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
djgab21
Messages postés66Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention19 mai 2011 24 févr. 2008 à 20:02
Bonjour Spy166,
C'est exactement ce qu'il me faut.
Tu me sauve donc je te met 10/10
A+
cs_Benz
Messages postés196Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 juin 2007 15 août 2006 à 13:26
Impeccable, c'est exactement ce dont j'avais besoin. Code simple et efficace.
Pour le petit bug, j'ai pas encore testé, mais la solution semble être là aussi :)
Pour moi ca vaut 10/10.
Merci
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 19 juin 2003 à 13:01
Zut !!
Grosse connerie !!
Oubliez ce ke jai dit au commentaire de cette source déposé le 18/06/2003 à 23:14:28 !
En réalité, le code à mettre est le suivant (marche qu'en vb6):
Dans un module:
Public Declare Function ReleaseCapture Lib "user32" () As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2
Dans l'évènement Mouse_Down de votre machin qui va vous servir à déplacer la form:
If Button <> vbLeftButton Then
Exit Sub
End If
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
Voilà cette fois c bon.
@++
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 19 juin 2003 à 12:24
je pense quil a voulu dire 10/10
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 18 juin 2003 à 23:21
Oua ! Qui est le batard qui m'a noté 1/10 ?!
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 18 juin 2003 à 23:14
Je viens de trouver le moyen qu'utilisent les barres de titre Windows, c'est encore plus simple que ma source!!
Surtout qu'il y a un léger bug avec le bouton gauche dans mon code: maintenez le bouton droit et le bouton gauche de la souris, bouger la souris, lacher le boutton gauche et bouger la souris...
Bref, voici the méthode:
Mettez ça dans un module:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2
Et ça dans l'évènement du truc de votre form, dont vous avez envie de vous servir pour déplacer la form:
If Button <> vbLeftButton Then
Exit Sub
End If
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
Voilà @+
cs_SandStorm
Messages postés2Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 9 juin 2003 9 juin 2003 à 13:55
Très facile comme code mais très utile aussi! :-)
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 3 juin 2003 à 18:19
merccccccccccciiiiiiiiiiiiiiiiiiiii
Jujufouq
Messages postés254Date d'inscriptionjeudi 27 décembre 2001StatutMembreDernière intervention 5 mars 2006 3 juin 2003 à 15:43
Ah merci... c'est mieux quand on n'a pas .NET...
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 2 juin 2003 à 22:41
Ben en vb6, ça serait comme ça (toujours avec un label comme exemple):
Dim DepartX As Integer
Dim DepartY As Integer
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
DepartX = X
DepartY = Y
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> vbLeftButton Then Exit Sub
Me.Left = Me.Left + (X - DepartX)
Me.Top = Me.Top + (Y - DepartY)
End Sub
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 2 juin 2003 à 21:24
ouinnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn et je fais comment moi utilisateur de vb6
ouiinnnnnnnnnnnnnn
24 févr. 2008 à 20:02
C'est exactement ce qu'il me faut.
Tu me sauve donc je te met 10/10
A+
15 août 2006 à 13:26
Pour le petit bug, j'ai pas encore testé, mais la solution semble être là aussi :)
Pour moi ca vaut 10/10.
Merci
19 juin 2003 à 13:01
Grosse connerie !!
Oubliez ce ke jai dit au commentaire de cette source déposé le 18/06/2003 à 23:14:28 !
En réalité, le code à mettre est le suivant (marche qu'en vb6):
Dans un module:
Public Declare Function ReleaseCapture Lib "user32" () As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2
Dans l'évènement Mouse_Down de votre machin qui va vous servir à déplacer la form:
If Button <> vbLeftButton Then
Exit Sub
End If
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
Voilà cette fois c bon.
@++
19 juin 2003 à 12:24
18 juin 2003 à 23:21
18 juin 2003 à 23:14
Surtout qu'il y a un léger bug avec le bouton gauche dans mon code: maintenez le bouton droit et le bouton gauche de la souris, bouger la souris, lacher le boutton gauche et bouger la souris...
Bref, voici the méthode:
Mettez ça dans un module:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2
Et ça dans l'évènement du truc de votre form, dont vous avez envie de vous servir pour déplacer la form:
If Button <> vbLeftButton Then
Exit Sub
End If
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
Voilà @+
9 juin 2003 à 13:55
3 juin 2003 à 18:19
3 juin 2003 à 15:43
2 juin 2003 à 22:41
Dim DepartX As Integer
Dim DepartY As Integer
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
DepartX = X
DepartY = Y
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> vbLeftButton Then Exit Sub
Me.Left = Me.Left + (X - DepartX)
Me.Top = Me.Top + (Y - DepartY)
End Sub
2 juin 2003 à 21:24
ouiinnnnnnnnnnnnnn