Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

évènement deplacement de fenetre

8 réponses
Avatar
seb-seb
bonjour
je voudrais faire une action quand on deplace la fenetre
mais je ne trouve pas d'évènement pour faire ca
comment faire ?
merci

8 réponses

Avatar
TouTenN
> je voudrais faire une action quand on deplace la fenetre
mais je ne trouve pas d'évènement pour faire ca
comment faire ?



Faut utiliser l'événement "dragdrop"

guy
Avatar
Clément Royal
Moi j'ai fais une routine qui lorsque tu clique le bouton
de la souris sur la fenêtre je vérifie alors le .top et
le .left de la fenêtre pour savoir s'ils ont bougé....


-----Message d'origine-----
bonjour
je voudrais faire une action quand on deplace la fenetre
mais je ne trouve pas d'évènement pour faire ca
comment faire ?
merci


.



Avatar
seb-seb
un peu du bricolage
autant faire un timer ...

"Clément Royal" a écrit dans le
message de news:032901c3d44c$fecb5f90$
Moi j'ai fais une routine qui lorsque tu clique le bouton
de la souris sur la fenêtre je vérifie alors le .top et
le .left de la fenêtre pour savoir s'ils ont bougé....


-----Message d'origine-----
bonjour
je voudrais faire une action quand on deplace la fenetre
mais je ne trouve pas d'évènement pour faire ca
comment faire ?
merci


.



Avatar
seb-seb
j'ai essayé mais ca reagit pas

"TouTenN" <gelapplication[Nospam]@tiscali.fr> a écrit dans le message de
news:bte4mt$p5m$
> je voudrais faire une action quand on deplace la fenetre
> mais je ne trouve pas d'évènement pour faire ca
> comment faire ?

Faut utiliser l'événement "dragdrop"

guy




Avatar
Zoury
Salut Seb! :O)

Tu peux subclasser les notifications suivantes qui sont envoyés à la fenêtre
lors d'un déplacement..

WM_MOVE Notification
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_move.asp

WM_MOVING Notification
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_moving.asp

WM_WINDOWPOSCHANGED Notification
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_windowposchanged.asp

WM_WINDOWPOSCHANGING Notification
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_windowposchanged.asp





Voici un exemple :
'***
' Form1
Option Explicit

Private Sub Form_Load()
Call SubClass(Me.hwnd)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call UnSubClass(Me.hwnd)
End Sub

' Module1
Option Explicit

Private Declare Function CallWindowProc _
Lib "user32" _
Alias "CallWindowProcA" _
( _
ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long _
) As Long

Private Declare Function SetWindowLong _
Lib "user32" _
Alias "SetWindowLongA" _
( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long _
) As Long

Private Const WM_MOVE As Long = &H3
Private Const WM_MOVING As Long = &H216
Private Const WM_WINDOWPOSCHANGING As Long = &H46
Private Const WM_WINDOWPOSCHANGED As Long = &H47

Private Const GWL_WNDPROC As Long = -4
Private m_lOldProc As Long

Public Sub SubClass(ByRef hwnd As Long)
m_lOldProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Public Sub UnSubClass(ByRef hwnd As Long)
SetWindowLong hwnd, GWL_WNDPROC, m_lOldProc
End Sub

Public Function WindowProc _
( _
ByVal hwnd As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long _
) As Long

Select Case uMsg
Case WM_MOVE
Debug.Print "WM_MOVE"
Case WM_MOVING
Debug.Print "WM_MOVING"
Case WM_WINDOWPOSCHANGED
Debug.Print "WM_WINDOWPOSCHANGED"
Case WM_WINDOWPOSCHANGING
Debug.Print "WM_WINDOWPOSCHANGING"
End Select

WindowProc = CallWindowProc(m_lOldProc, hwnd, uMsg, wParam, lParam)

End Function
'***

Si tu as besoin de plus ample détail, tu n'as qu'à le demander ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"seb-seb" wrote in message
news:%
bonjour
je voudrais faire une action quand on deplace la fenetre
mais je ne trouve pas d'évènement pour faire ca
comment faire ?
merci




Avatar
Zoury
> Tu peux subclasser les notifications suivantes (....)



Je ne sais pas si tu est familier avec le concept du subclassing, mais
j'aurais peut-être du te prévénir qu'avec le code que je t'ai posté, tu ne
*pourra pas* faire de pas à pas... Cela ferait planter le système. Il
possible de faire du pas à pas lors de subclassing, mais cela nécessite
l'utilisation d'une autre dll, ce qui n'ap as été implémenté dans l'exemple
que j'ai posté.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
seb-seb
interressant je regarderait ca plus en details
mais le pas a pas c pratique quand meme
merci ;-)

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
> Tu peux subclasser les notifications suivantes (....)

Je ne sais pas si tu est familier avec le concept du subclassing, mais
j'aurais peut-être du te prévénir qu'avec le code que je t'ai posté, tu ne
*pourra pas* faire de pas à pas... Cela ferait planter le système. Il
possible de faire du pas à pas lors de subclassing, mais cela nécessite
l'utilisation d'une autre dll, ce qui n'ap as été implémenté dans


l'exemple
que j'ai posté.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous




Avatar
Zoury
Salut Seb!

la dll se nomme dbgwproc.dll si je ne m'abuse.. il suffit de faire des
recherches là dessus.. je ne l'ai personnellement jamais utilisé.. peut-être
quelqu'un ici saura nous en dire plus..

l'exemple suivant de Brad Martinez l'emploi (voir LVCustomDraw)
http://www.mvps.org/btmtz/listview/

seulement le lien qu'il donne pour télécharger la dll en question est
introuvable.. faudra donc fouiller :O/

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"seb-seb" wrote in message
news:
interressant je regarderait ca plus en details
mais le pas a pas c pratique quand meme
merci ;-)

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
> > Tu peux subclasser les notifications suivantes (....)
>
> Je ne sais pas si tu est familier avec le concept du subclassing, mais
> j'aurais peut-être du te prévénir qu'avec le code que je t'ai posté, tu


ne
> *pourra pas* faire de pas à pas... Cela ferait planter le système. Il
> possible de faire du pas à pas lors de subclassing, mais cela nécessite
> l'utilisation d'une autre dll, ce qui n'ap as été implémenté dans
l'exemple
> que j'ai posté.
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
> Merci de poster les réponses au groupe afin d'en faire profiter à tous
>
>