Bouger une form sans bordure ( borderstyle = 0-none)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 302 fois - Téléchargée 63 fois

Contenu du snippet

Comment faire pour que votre form soit bougeable sans cette horrible barre de MICROSOFT

Source / Exemple :


'ca c est a mettre dans le general

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private dx As Integer, dy As Integer, dwn As Integer

Private Type POINTAPI
   X As Long
   Y As Long
End Type

'celui ci dans me mousedown

Private Sub Form_MouseDown(button As Integer, Shift As Integer, X As Single, Y As Single)
dx = X
dy = Y
dwn = True
End Sub

'celui ci dans le mouse move

Private Sub Form_MouseMove(button As Integer, Shift As Integer, X As Single, Y As Single)
If dwn Then
    Move Left + (X - dx), Top + (Y - dy)
    u% = DoEvents 'make sure it cleans up
    'u est un integer
End If
End Sub

'et celui la dans le mouse up

Private Sub Form_MouseUp(button As Integer, Shift As Integer, X As Single, Y As Single)
dwn = False
End Sub

Conclusion :


vous pouvez mettre se code dans la form OU SUR NIMPORTE KOI D'AUTRE (a condition que ce soit touchable bien sur, du genre un hlbpanel, un label, ect ... ), ce qui fera bouger votre form quand vous cliquerez dessus

A voir également

Ajouter un commentaire

Commentaires

yannel777
Messages postés
130
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 avril 2019
-
Voici le code:

Dim mouse_offset
Private Sub Form1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseDown
mouse_offset = New Point(-e.X, -e.Y)
End Sub

Private Sub Form1_MouseMove(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Dim mousePos As Point = Control.MousePosition
mousePos.Offset(mouse_offset.X, mouse_offset.Y)
Location = mousePos
End If
End Sub
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
59 -
NON !

Il ne aut pas utiliser ce code.

dans les parametres d'affichage, on peut dire de ne pas afficher le contenu des fenetres lorsqu'on les deplace.
toi, tu déplaces la chose a la main, tu n'en fait qu'a ta tête.

ce genre de code est pourtant basique:

Private Declare Function ReleaseCapture Lib "user32.dll" () As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Const WM_NCLBUTTONDOWN As Long = &HA1
Private Const HTCAPTION As Long = 2

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&
End Sub
ali33
Messages postés
2
Date d'inscription
dimanche 5 novembre 2006
Statut
Membre
Dernière intervention
13 août 2009
-
c bon
miguelfp
Messages postés
9
Date d'inscription
dimanche 30 mai 2004
Statut
Membre
Dernière intervention
3 juin 2005
-
Trés bien ;)
Tu peu ausi l'apliquer sur des images si tu remplace le Form1 par Image1 :)
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14 -
et le copyright c pour les chiens ?

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.