Layered Window + popup menu = pas beau [win32] - C - Programmation
Marsh Posté le 19-11-2003 à 17:37:05
C'est marrant quand je pose une question sur win32, je n'obtiens des réponses qu'après un up
Marsh Posté le 20-11-2003 à 11:56:03
Marsh Posté le 20-11-2003 à 13:42:44
Ben je vois pas trop ce qui se passe. Ta fenêtre est transparente, c'est normal qu'on voit celle de dessous non ?
Le "trou" est de la taille totale finale du menu (et se remplit donc au fur et a mesure) ou bien est-ce que ce trou grandit? Essaye de poster un screenshot.
Marsh Posté le 20-11-2003 à 17:36:34
Oui les screenshots je vais essayer mais :
- c'est pas facile à faire parce que ca va quand meme super vite
- le serveur ftp de mon hebergeur est down.
En fait que ma fenetre soit transparente ou pas, c'est pareil. Le style WS_EX_LAYERED permet de pouvoir modifier les paramètres de transparence, c'est tout.
Et quels que soient ces paramètres, quand le menu s'affiche, j'ai l'impression que le système commence par faire un "trou" dans ma fenetre de la taille du futur menu, et ensuite remplit progressivement ce trou avec le menu...
Ouais t'as raison, faut que je fasse un screenshot.
Marsh Posté le 20-11-2003 à 17:47:44
Bon voila j'ai réussi à trouver un hébergement de fortune. Je sais pas combien de temps les images pourront rester là, alors répondez-moi vite
Icic on peut voir le comportement normal, avec le fond de ma fenetre (en blanc), et le menu qui commence à se montrer (en gris) :
Et ici la même chose avec une fenetre WS_EX_LAYERED, dans laquelle on voit un trou, et à travers ce trou, le bureau :
Marsh Posté le 19-11-2003 à 12:18:13
Toujours mes aventures au pays de win32. J'ai une fenetre, normal. Je veux la rendre transparent. Pour cela j'utilise une "Layered Window" (comment on dit en français ?) en ajoutant le style WS_EX_LAYERED. ca, ça marche.
Maintenant quand l'utilisateur clique droit sur ma fenetre, j'affiche un menu avec TrackPopupMenu. Quand le menu s'affiche, il fait une petite animation pour donner l'impression que le menu se "déroule". Vous voyez ce que je veux dire ?
Donc voila le problème : quand ma fenêtre est normale, pas de problème. Quand ma fenetre a le style WS_EX_LAYERED, pendant que le menu se "déroule", on aperçoit le fenêtre d'en dessous, come si il y avait un trou de la forme du menu dans ma fenêtre. C'est assez moche ; vous savez comment je pourrais faire pour que ça fasse pas ça ?
---------------
Au royaume des sourds, les borgnes sont sourds.