begin process at 2012 05 29 01:20:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

couleur transparente cliquable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

couleur transparente cliquable

jeudi 22 novembre 2007 à 17:09:28 | couleur transparente cliquable

ndubien

Membre Club

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...


Nico

jeudi 22 novembre 2007 à 17:30:54 | Re : couleur transparente cliquable

juju12

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.

jeudi 22 novembre 2007 à 19:17:54 | Re : couleur transparente cliquable

ndubien

Membre Club

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+

jeudi 22 novembre 2007 à 19:45:42 | Re : couleur transparente cliquable

juju12

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.
jeudi 22 novembre 2007 à 21:44:07 | Re : couleur transparente cliquable

victorcoasne

Membre Club
Réponse acceptée !
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
vendredi 23 novembre 2007 à 17:23:52 | Re : couleur transparente cliquable

ndubien

Membre Club

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...

vendredi 23 novembre 2007 à 17:44:19 | Re : couleur transparente cliquable

victorcoasne

Membre Club
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
vendredi 23 novembre 2007 à 19:42:12 | Re : couleur transparente cliquable

ndubien

Membre Club

Désolé, j'avais oublié
Encore merci...

vendredi 23 novembre 2007 à 22:51:18 | Re : couleur transparente cliquable

victorcoasne

Membre Club
Bonjour,

De rien et bonne contination.

Merci et bonne prog,
@++

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


Cette discussion est classée dans : couleur, rendre, fenêtre, transparente, cliquable


Répondre à ce message

Sujets en rapport avec ce message

Changer la couleur du background d'une fenêtre client MDI en Win32 [ par zibo3 ] Bonjour, j'ai un petit soucis, je dois changer la couleur de fond de mes fenêtres clients MDI au cours de mon application et la seule solution que j'a Couleur de fenêtre [ par CyberP ] Comment changer la couleur d'arrière plan d'une fenêtre après l'avoir créée ?PAINTSTRUCT pps;HDC hdc;hdc = BeginPaint(hWnd, &pps);SelectObject(hdc, Cr allegro [ par mat74 ] salut a ts ,avec allegro la couleur transparente est le violet . cad que si on met du violet ds un dessin il n'apparait pas a l'écran . j'ai merai sav Rendre inactive une fenêtre [ par goutbouyo ] Salut,Comment fait -on lorsqu'il y a 2 fenetres pour "forcer" une des 2 fenêtres ???C'est à dire pour que celle ci reste toujours en 1er plan et qu'on ListBox transparente [ par Cako19 ] Bonjour,Est-il possible de rendre transparent chaque ligne une à une d'une listBox en C++ ?D'ailleurs existe-t-il un handle ou autre pour traiter ces Rendre une fentre transparente [ par supergrey ] Bonjour, je voudrais savoir comment rendre la fenetre d'un programme externe (comme IE, blocnote...) transparente.J'ai trouvé des sources rendre la fe OpenGL : Couleur Transparente (composante alpha) [ par smoove5198 ] Bonjour, Je fait de l'affichage 3D avec opengl et je souhaite utiliser le principe de couleur transparente. Apres m'etre un peu renseigné j'ai appri Fenêtre inselectionnable (transparente / actions utilisateurs) [ par Galmiza ] Bonjour, Je souhaite afficher une application windows toute bête, légerement transparente, mais qui ne gêne pas les interactions utilisateur-autres f texture avec une seule couleur transparente [ par thespartan ] Bonjour. J'affiche un bmp pour lequel le noir ne doit pas être affiché et pour cela j'utilise du blending (il me semblait qu'on pouvait y parvenir ave [WinAPI] fonctions graphiques [ par riked ] Bonjour (ou bonsoir), Je suis nouveau sur cppfrance et je vient vous exposer mon problème. Je fait actuellement un programme qui à pour but d'affich


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales