Détecter un clic de souris EN DEHORS D'UN USERCONTROL
Alexvb3
-
22 avril 2001 à 19:46
copyrightx
Messages postés59Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention14 janvier 2016
-
16 mars 2005 à 08:39
Bonjour AMI Programmeur !
J'ai un problème (comme c'est original !)
Je suis en train de développer un OCX "Flat comboBox" et je n'ai pas de problème pour détecter le "mouseout". Par contre, lorsque je clique sur mon contrôle, je l'étend (height) et j'affiche un contrôle listbox qui se trouve dedans. J'avais un code comme celui que je vais te demander mais je l'ai perdu et je m'en mords les doigts ! je souhaiterais pouvoir détecter un CLIC DE SOURIS en dehors de mon contrôle ActiveX, ce qui me permettrait lorsque je l'ai détecté, de cacher ma listbox (en réduisant le height de mon contrôle).
Si tu as ne serait-ce qu'une piste, c'est sympa.
Merci.
A+
Alexvb3 (Alex). - J'ai commencé en VB3 et je suis un nostalgique, même si je bosse désormais en VB6 !
réponds moi au : webmaster@editions-doc.com
A voir également:
Détecter un clic de souris EN DEHORS D'UN USERCONTROL
Je peux t'aider : [;) <-tu vas me dire: comme c original ;)
il faut connaitres la position de la souris:
Déclares ca:
Type POINTAPI
x As Long
y As Long
End Type
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
et ds le code:
Dim pos As POINTAPI
GetCursorPos pos
ensuite, faut savoir si on a cliké :
déclares ca :
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
dim SavedStatus(1 to 2) as integer
et dans le code:
for a=1 to 2
If GetKeyState(a) <> SavedStatus(a) Then
SavedStatus(a) = GetKeyState(a)If SavedStatus(a) 0 Or SavedStatus(a) 1 Then msgbox "Ca a cliké !"
End If
next a
copyrightx
Messages postés59Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention14 janvier 2016 16 mars 2005 à 08:39
Salut Alexvb3
Je pense que tu devrais essayer la fonction "ExitFocus" qui détermine la sortie du curseur lorsque tu donne le focus a un autre élément de ta feuille form.
Dans "UserControl_ExitFocus", insère les paramêtres quand tu est en dehors de ton contrôle activex.Par exemple, si ton UserControl est composé d'un Label1; dans "UserControl_EnterFocus" tu entre les paramètres "Label1.Caption "ENTER", et dans "UserControl_ExitFocus", tu entre les paramètres "Label1.Caption "EXIT".
Le résultat :
- Le curseur sur le UserControl donne au Label1.Caption la valeur "ENTER"
- Le curseur à l'extérieur du UserControl donne au Label1.Caption la valeur "EXIT".
Pour ton ocx, le résultat sera le même :
- Le curseur dessus : ListBox agrandie
- Le curseur en dehors : ListBox réduite.