Couleur transparente cliquable [Résolu]

ndubien 557 Messages postés dimanche 25 septembre 2005Date d'inscription 10 mai 2014 Dernière intervention - 22 nov. 2007 à 17:09 - Dernière réponse : victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention
- 23 nov. 2007 à 22:51
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
Afficher la suite 

8 réponses

Répondre au sujet
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 22 nov. 2007 à 21:44
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de victorcoasne
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 22 nov. 2007 à 17:30
0
Utile
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.
Commenter la réponse de cs_juju12
ndubien 557 Messages postés dimanche 25 septembre 2005Date d'inscription 10 mai 2014 Dernière intervention - 22 nov. 2007 à 19:17
0
Utile
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+
Commenter la réponse de ndubien
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 22 nov. 2007 à 19:45
0
Utile
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.
Commenter la réponse de cs_juju12
ndubien 557 Messages postés dimanche 25 septembre 2005Date d'inscription 10 mai 2014 Dernière intervention - 23 nov. 2007 à 17:23
0
Utile
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...
Commenter la réponse de ndubien
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 23 nov. 2007 à 17:44
0
Utile
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
Commenter la réponse de victorcoasne
ndubien 557 Messages postés dimanche 25 septembre 2005Date d'inscription 10 mai 2014 Dernière intervention - 23 nov. 2007 à 19:42
0
Utile
Désolé, j'avais oublié
Encore merci...
Commenter la réponse de ndubien
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 23 nov. 2007 à 22:51
0
Utile
Bonjour,

De rien et bonne contination.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.