Deplacer un formulaire sans barre de titre

Soyez le premier à donner votre avis sur cette source.

Vue 10 368 fois - Téléchargée 560 fois

Description

Comment puis-je déplacer mon Formulaire qui n'a pas de Barre de Titre ?

Mettez ce code dans votre Formulaire :

Source / Exemple :


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 Sub ReleaseCapture Lib "User32" ()
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

djgab21
Messages postés
66
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
19 mai 2011
-
Parfait ! C'est ce qu'il me fallait !
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
ravi de l'entendre ^^
gloomy64
Messages postés
46
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
3 avril 2008
-
Honnetement, j'avous que le code est très mauvais... et au départ c'étais pour un pote que je l'avais postée... qui la repris d'ailleurs... desolès, j'suis un peu surcharger ces temps et je fais un peu n'importe quoi, enfin Renfield, merci de pas etre trop mechant avec moi, de quand meme corriger mon code et j'promets de faire mieux la prochaine fois.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
c'est un code standard, Gloomy64
néanmoins, j'y décèle quelques indélicatesses.

ValRetourLng n'est pas déclaré (pas d'utilisation de l'Option Explicit ?)

ValRetourLng ne sert de toutes facon a rien puisqu'il n'est ni testé, ni renvoyé

MoveForm est une fonction de type Variant (pas de type définit)... et qui ne renvoie rien...

tu transmets à un parametre d'API définit en ByRef As Any la valeur 0& ... donnes lui plutot ByVal 0& si tu ne veux pas crasher un jour ou l'autre ton application.

tu demandes le MoveForm dans le _Load ????
pourquoi ne pas utiliser l'evenemtn adéquat (MouseDown, par exemple)

je n'ai pas compris pourquoi tu as posté...
je sais que tu n'as fait que remanier le code de Nix, qui n''est pas terrible, terrible, mais le poids des années est là !
gloomy64
Messages postés
46
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
3 avril 2008
-
'Dans un module

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

Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Function MoveForm(Who As Form)
Call ReleaseCapture
ValRetourLng = SendMessageA(Who.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End Sub

'Dans une Form
Private sub Form_Load()
MoveForm Me
End Sub

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.