Couleur transparente cliquable

[Résolu]
Signaler
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
Bonjour,

Je souhaiterais rendre une couleur de ma fenêtre tout en laissant la zone de la fenêtre cliquable comme si elle y était...

Pour rendre transaprent j'utilise :
SetLayeredWindowAttributes( hwndPrinc, couleur, 0, LWA_COLORKEY );
ceci marche mais impossible de cliquer sur la zone transparente...

Comment faire?
Informations: Je me posais la question d'intégrer un hook souris (ce n'est qu'une idée) afin de pallier à ce problème mais s'il existe d'autres méthdoes plus pratiques, merci de me les communiquer...

Merci d'avance et à bientôt...


<hr />


Nico

8 réponses

Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,

Si tu as définie la zone comme transparente la fenêtre ne dessine plus cet endroit donc toute action à cette zone n'appartient plus à la fenêtre mais à la fenêtre en-dessous car c'est elle qui se dessine.
Donc la solution serait le hook mais pour quelle utilité ?
Sinon je ne sait pas si c'est possible mais il faudrait récupérer les pixels de la fenêtre du dessous et les afficher dans la fenêtre, dans ce cas cette fenêtre n'est plus transparente mais caméléon.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Dixit Platform SDK :
Hit testing of a layered window is based on the shape and transparency of the window. This means that the areas of the window that are color-keyed or whose alpha value is zero will let the mouse messages through. However, if the layered window has the WS_EX_TRANSPARENT extended window style, the shape of the layered window will be ignored and the mouse events will be passed to other windows underneath the layered window.
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
Salut juju12,

j'ai essayer de mettre à ma fenêtre WS_EX_TRANSPARENT|WS_EX_LAYERED:
ce qui me donne une fenêtre invible dans les zones RGB(0,0,0) (ce que je voulait) mais incliquable

j'ai ensuite essayé: WS_EX_TRANSPARENT
ceci me donne une fenêtre entièrement cliquable (parfait) mais pas transparente de partout où il le fallait
(pour l'instant c'est une fenêtre blanche dans laquelle il faut cacher le blanc (le rendre transparent, invisible mais cliquable)

j'ai aussi essayé WS_EX_LAYERED
cette fois fenêtre avec le blanc invisible (parfait) mais les parties transparentes sont incliquables

Pour information, j'utilise DEV-C++...
Je souhaiterais comme avec WS_EX_LAYERED mais avec les zones invisibles cliquables...

Merci quand même!
A+
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Ouais ouais j'avais compris...si j'ai bien pigé le texte que je t'ai mis au-dessus, les clicks ne sont envoyés ni si tu mets le style WS_EX_TRANSPARENT(sur Layered) ni sur les endroits où tu as une COLORKEY, donc ce que tu veux faire marche a priori pas par là...
Par contre tu peux peut-être essayer SetWindowRgn, alors il repeint pas la fenêtre en-dehors des zones spécifiées, et avec un peu de chances t'auras quand même accès aux clicks.
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
J'avais imaginé à cette possiblité du HOOK.
Je l'ai finalement mise en oeuvre dans ma source qui sert à dessiner sur l'écran donc qui necessite de recevoir tout clics y compris et surtout sur les zones transparentes...
A+ et merci à tous...
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,

Si tu as résolu ton problème merci de récompenser ceux qui t'ont aidé en cliquant sur "réponse acceptée"

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
Désolé, j'avais oublié
Encore merci...
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,

De rien et bonne contination.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com