UserControl: comment obtenir la propriété BackStyle=Transparent comme dans un
vicosta
Messages postés178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 novembre 2011
-
12 avril 2007 à 20:52
vicosta
Messages postés178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 novembre 2011
-
13 avril 2007 à 19:17
Salut,
Je contacte qu'on peut cliquer sur un Label avec sa propriété backstyle=transparent, et qu'il réagit aux events MouseDown, Click, etc (dans un Form)
Sur un UserControl, ce Label ne réagit pas. Pour cela il faut que que la même propriété de l'Usercontrol soit mise sur Opaque
Je vous démanderais comment faire réagir ce label dans ces conditions, ou comment configurer un Usercontrol transparent pour qu'il réagisse à un clic de souris
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 20124 13 avril 2007 à 07:11
bonjour,
Oui, c'est exact, mais je n'ai pas trouvé de parade non plus, je crois que si tout est transparent windows ne le détecte pas, tu a la même chose avec le contrôle image, s'il est vide ou dessiné windows ne le vois pas, sauf avec une image dedans.
Peut être pour contourner, détecter le click souris sur la feuille dans MouseDown ou Up et comparer X et Y avec la position de ton usercontrol.
cordialement
louis
Ceci permet de recevoir l'event hitest dans le contrôl, et ainsi programmer les events de la souris ,...
Private Sub UserControl_HitTest(X As Single, Y As Single, HitResult As Integer)
If HitResult = vbHitResultOutside Then
HitResult = vbHitResultHit
End If
End Sub
Mais ça crée un probléme: la propriété usercontrol.widowless=true invalide la propriété usercontrol.Hwnd,
donc pour faire des SetCapture et ReleaseCapture tu oublie
Alors, comment valider cette transparence active en même temps que sa propriété Hwnd ?
Merci encore de vos réponses