SAVOIR SI LA SOURIS EST SORTIS D'UN CONTROLE MEME UN LABEL

Messages postés
164
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
19 décembre 2008
- - Dernière réponse : reacen
Messages postés
284
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010
- 12 juil. 2009 à 06:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7631-savoir-si-la-souris-est-sortis-d-un-controle-meme-un-label

Afficher la suite 
reacen
Messages postés
284
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010
-
Mais pour un contrôle ActivX (OCX) C'est possible ?

If clsMouser.IsMouseOver(Me, PictureExample) Then ...
If clsMouser.IsMouseOver(UserControl, PictureExample) Then ...

Donne une Erreur, apparemment "UserControl" n'est pas acceptée.
J'ai même changer dans la classe "clsMouseOver" :

Public Function IsMouseOver(frmHost As Form, objSubject As Object)
Public Function IsMouseOver(frmHost As Object, objSubject As Object)
Public Function IsMouseOver(frmHost, objSubject As Object)

Sa donne toujours riens, j'ai souvent ce problème là il faut faire quoi ? :x
cs_Besh
Messages postés
7
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
18 février 2005
-
Votre source est la premiere réaction k 'on a pour resoudre ce genre de probleme. Mais on se rend compte que l'utilisation du timer pose souvant des problemes, car il arrive que le timer n'execute pas sont code, parce que l'utilisateur a été rapide ds son mouvement. Comme note je donne 7/10
cs_gorby69
Messages postés
48
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
10 février 2006
-
Ca marche du tonerre. Mais n'y aurait il pas un moyen de se passer du Timer ?
Sinon merci encore à tous ceux qui partagent leurs sources et font vivre ce site....
Nargzul
Messages postés
438
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
26 juillet 2007
3 -
ps, ton vert de départ et ton vert ke tu donne en après nest pas le meme... pas mal l'idéeca vaut un 8
bidoch78
Messages postés
67
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
2 décembre 2005
-
Moi je conseille d'utiliser se principe qui est tres utilisée sous windows :

Supprimer tout le code dans la form 'FrmMouseOverDemo' et mettre le code ci dessous :

'*******
'*******

Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

Private Sub PictureExample_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

With PictureExample
If X >= 0 And X <= .Width And Y >= 0 And Y <= .Height Then
SetCapture .hwnd
Label1.Caption = "Mouse Over"
Else
ReleaseCapture
Label1.Caption = "Mouse Out"
End If
End With

End Sub

'*******
'*******

Tres simple en faite. Il faut aussi peut etre eviter les appels recurants de l'api SetCapture à l'aide d'un boolean