Je ne la connais malheureusement pas donc oui tu peux la citer :-)
J'avais enregistré ce code il y a un moment deja sur mon disque dans un fichier texte car il me parassait particulierement interessant et utile.
ng
C'était donc toi :-) Bah merci alors, car c'est du code qui m'a deja été utile !
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"François Picalausa" a écrit dans le message de news:
Bonjour/soir,
J'avais mis le smiley car si tu lis mon post... enfin, click sur le lien
"ng" a écrit dans le message de news: > Je ne la connais malheureusement pas donc oui tu peux la citer :-) > > J'avais enregistré ce code il y a un moment deja sur mon disque dans > un fichier texte car il me parassait particulierement interessant et > utile.
C'était donc toi :-) Bah merci alors, car c'est du code qui m'a deja été
utile !
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de news:
ukIWwAN7DHA.3024@tk2msftngp13.phx.gbl...
Bonjour/soir,
J'avais mis le smiley car si tu lis mon post... enfin, click sur le lien
"ng" <ng@ngsoft-fr.com> a écrit dans le message de
news:uWrkb6M7DHA.452@TK2MSFTNGP11.phx.gbl
> Je ne la connais malheureusement pas donc oui tu peux la citer :-)
>
> J'avais enregistré ce code il y a un moment deja sur mon disque dans
> un fichier texte car il me parassait particulierement interessant et
> utile.
C'était donc toi :-) Bah merci alors, car c'est du code qui m'a deja été utile !
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"François Picalausa" a écrit dans le message de news:
Bonjour/soir,
J'avais mis le smiley car si tu lis mon post... enfin, click sur le lien
"ng" a écrit dans le message de news: > Je ne la connais malheureusement pas donc oui tu peux la citer :-) > > J'avais enregistré ce code il y a un moment deja sur mon disque dans > un fichier texte car il me parassait particulierement interessant et > utile.
Jérôme VERITE
Merci à tous, vous m'avez fait découvrir une API bien interessante, getcapture que je ne connaissais pas, bien qu'utilisant déjà setcapture.
Merci beaucoup à tous
Jérôme
"ng" a écrit dans le message de news:
Salut,
Voici un exemple pour un usercontrol :
'Le code suivant vous permet de détecter l'entrée, la sortie et le
mouvement
de la souris sur un usercontrol.
'Attention: le scalemode du usercontrol doit être placé sur 3 - pixels
pour
que ce code fonctionne!
Option Explicit
'------- Déclarations d'API -------
Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Private Declare Function GetCapture Lib "user32" () As Long Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long,ByVal yPoint As Long) As Long Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,pRect As RECT) As Long
'------- Déclarations des événements appelés -------
Event MouseLeave() Event MouseEnter(Button As Integer, Shift As Integer, X As Single, Y As Single) Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X
As
Single, Y As Single) 'Si le curseur a été capturé par le contrôle If GetCapture() = UserControl.hwnd Then 'Variable contenant le rectangle du contrôle Dim ControlRect As RECT 'Définition de la valeur de la variable GetWindowRect UserControl.hwnd, ControlRect
'si le pointeur quitte le contrôle '(que la fenêtre est différente de celle du contrôle) If WindowFromPoint(ControlRect.Left + X, ControlRect.Top + Y) <> UserControl.hwnd Then ' on libère la capture et on apelle l'événement de sortie RaiseEvent MouseLeave Call ReleaseCapture Else 'La souris bouge sur le contrôle, on appelle l'événement "mousemove" RaiseEvent Mousemove(Button, Shift, X, Y) End If
Else ' Lorsque la souris entre sur le contrôle, on en fait la capture. ' C à d que tous les événement ne seront plus retransmits qu'à ce contrôle. RaiseEvent MouseEnter(Button, Shift, X, Y) Call SetCapture(UserControl.hwnd) End If
End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jérôme VERITE" <veritejeromeAROBASEwanadooPOINTfr> a écrit dans le
message
de news: > Bonjour, > > Comment faire pour récupérer les évènements s'ils existent MouseEnter et > MouseExit? > > Pour information, je récupère déjà toute sorte d'évènements, c'est donc
le
> cas particulier de ces 2 là qui m'interesse et pas la technique
Merci à tous,
vous m'avez fait découvrir une API bien interessante, getcapture que je ne
connaissais pas, bien qu'utilisant déjà setcapture.
Merci beaucoup à tous
Jérôme
"ng" <ng@ngsoft-fr.com> a écrit dans le message de
news:eMITSyM7DHA.3804@tk2msftngp13.phx.gbl...
Salut,
Voici un exemple pour un usercontrol :
'Le code suivant vous permet de détecter l'entrée, la sortie et le
mouvement
de la souris sur un usercontrol.
'Attention: le scalemode du usercontrol doit être placé sur 3 - pixels
pour
que ce code fonctionne!
Option Explicit
'------- Déclarations d'API -------
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetCapture Lib "user32" () As Long
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As
Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As
Long,ByVal yPoint As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As
Long,pRect As RECT) As Long
'------- Déclarations des événements appelés -------
Event MouseLeave()
Event MouseEnter(Button As Integer, Shift As Integer, X As Single, Y As
Single)
Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
Single)
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X
As
Single, Y As Single)
'Si le curseur a été capturé par le contrôle
If GetCapture() = UserControl.hwnd Then
'Variable contenant le rectangle du contrôle
Dim ControlRect As RECT
'Définition de la valeur de la variable
GetWindowRect UserControl.hwnd, ControlRect
'si le pointeur quitte le contrôle
'(que la fenêtre est différente de celle du contrôle)
If WindowFromPoint(ControlRect.Left + X, ControlRect.Top + Y) <>
UserControl.hwnd Then
' on libère la capture et on apelle l'événement de sortie
RaiseEvent MouseLeave
Call ReleaseCapture
Else
'La souris bouge sur le contrôle, on appelle l'événement
"mousemove"
RaiseEvent Mousemove(Button, Shift, X, Y)
End If
Else
' Lorsque la souris entre sur le contrôle, on en fait la capture.
' C à d que tous les événement ne seront plus retransmits qu'à ce
contrôle.
RaiseEvent MouseEnter(Button, Shift, X, Y)
Call SetCapture(UserControl.hwnd)
End If
End Sub
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"Jérôme VERITE" <veritejeromeAROBASEwanadooPOINTfr> a écrit dans le
message
de news: O9i6ibL7DHA.360@TK2MSFTNGP12.phx.gbl...
> Bonjour,
>
> Comment faire pour récupérer les évènements s'ils existent MouseEnter et
> MouseExit?
>
> Pour information, je récupère déjà toute sorte d'évènements, c'est donc
le
> cas particulier de ces 2 là qui m'interesse et pas la technique
Merci à tous, vous m'avez fait découvrir une API bien interessante, getcapture que je ne connaissais pas, bien qu'utilisant déjà setcapture.
Merci beaucoup à tous
Jérôme
"ng" a écrit dans le message de news:
Salut,
Voici un exemple pour un usercontrol :
'Le code suivant vous permet de détecter l'entrée, la sortie et le
mouvement
de la souris sur un usercontrol.
'Attention: le scalemode du usercontrol doit être placé sur 3 - pixels
pour
que ce code fonctionne!
Option Explicit
'------- Déclarations d'API -------
Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Private Declare Function GetCapture Lib "user32" () As Long Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long,ByVal yPoint As Long) As Long Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,pRect As RECT) As Long
'------- Déclarations des événements appelés -------
Event MouseLeave() Event MouseEnter(Button As Integer, Shift As Integer, X As Single, Y As Single) Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X
As
Single, Y As Single) 'Si le curseur a été capturé par le contrôle If GetCapture() = UserControl.hwnd Then 'Variable contenant le rectangle du contrôle Dim ControlRect As RECT 'Définition de la valeur de la variable GetWindowRect UserControl.hwnd, ControlRect
'si le pointeur quitte le contrôle '(que la fenêtre est différente de celle du contrôle) If WindowFromPoint(ControlRect.Left + X, ControlRect.Top + Y) <> UserControl.hwnd Then ' on libère la capture et on apelle l'événement de sortie RaiseEvent MouseLeave Call ReleaseCapture Else 'La souris bouge sur le contrôle, on appelle l'événement "mousemove" RaiseEvent Mousemove(Button, Shift, X, Y) End If
Else ' Lorsque la souris entre sur le contrôle, on en fait la capture. ' C à d que tous les événement ne seront plus retransmits qu'à ce contrôle. RaiseEvent MouseEnter(Button, Shift, X, Y) Call SetCapture(UserControl.hwnd) End If
End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jérôme VERITE" <veritejeromeAROBASEwanadooPOINTfr> a écrit dans le
message
de news: > Bonjour, > > Comment faire pour récupérer les évènements s'ils existent MouseEnter et > MouseExit? > > Pour information, je récupère déjà toute sorte d'évènements, c'est donc
le
> cas particulier de ces 2 là qui m'interesse et pas la technique
"Jérôme VERITE" <veritejeromeAROBASEwanadooPOINTfr> a écrit dans le
message de news:%23yjkZbY8DHA.2760@TK2MSFTNGP09.phx.gbl
> Solution trouvée sur le génialissime site vbaccelerator
>
>