Deplacer un formulaire sans barre de titre

Soyez le premier à donner votre avis sur cette source.

Vue 10 491 fois - Téléchargée 582 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

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 !
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
ravi de l'entendre ^^
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.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
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à !
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
Afficher les 13 commentaires

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.