Déplacer une feuille sans bordure (borderstyle=0)

cs_crameur Messages postés 2 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 10 février 2009 - 26 janv. 2009 à 00:48
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 26 janv. 2009 à 09:21
J'utilise la fonction SendMessage pour déplacer ma feuille sur l'écran, mais voila est t il possible de la déplacer que dans une région particulière de l'écran (rectangle) que j'aurais définit? Comment?
<hr size="2" width="100%" />'Voici le code que j'ai essayé sans succès!

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

Public Sub MoveFrm(frm As Form)  
    If frm.Top <= 1000 Then
        frm.Top = 1000
    Else
       ReleaseCapture

       Dim Movef

       Movef = SendMessage(frm.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 1&)
    End If
   
End Sub

Crameur

2 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
26 janv. 2009 à 07:48
salut,
possible mais pas avec cette API, une fois le mouvement en cours tu n'as plus d'évènement pour contrôler la position

tu peux t'inspirer et adapter ce code :

http://www.codyx.org/snippet_deplacer-objet-dans-formulaire_41.aspx#2149
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
26 janv. 2009 à 09:21
Salut
En tapant "déplacer forme sans bordure" dns la case rechercher parmi les codes en excluant .Net, tu aurais déjà la réponse, c'est fait pour cela, un moteur de recherche ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0