[dev-c++] fenetre transparente et non rectangulaire

5/5 (10 avis)

Vue 12 232 fois - Téléchargée 1 350 fois

Description

Une fenêtre qui n'est pas comme les autres : elle n'est pas rectangulaire.
C'est une tâche qui débarque sur votre écran.
Plus sérieusement les API Windows sont utilisés pour afficher la fenêtre.
Grâce aux fameuses "Régions" on peut afficher les pixels non transparents.
L'image fond.bmp est l'image de fond où le noir est transparent.
Compilé avec Dev-C++ mais devrait passer avec d'autres compilateurs.

Source / Exemple :


Il y a un zip avec l'exécutable dans un autre zip et le même exécutable mais a renommer dans le répertoire.

Conclusion :


Commentez, notez et indiquez moi si vous trouvez des astuces.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Pistol_Pete Messages postés 1054 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
23 nov. 2007 à 10:14
Salut

Pas mal du tout mais tu obtiens tout de meme un exe de 1,4 MO!! Essaie de compresser ton image bmp.
maxil12 Messages postés 5 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 23 novembre 2007
23 nov. 2007 à 14:15
Yo! merci pour la source .
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
29 nov. 2007 à 14:44
Salut,
tu aurais aussi pu utiliser SetLayeredWindowAttributes( (HWND), (COLORREF), 0, LWA_COLORKEY ) pour rendre ta fenêtre transparante. Seul problème avec SetLayeredWindowAttributes() il n'y a pas de tolérance enfin pas que je sâche. Mais celà aurait pû constitué une autre méthode pour efféctuer une action comparable.
Sinon, très bonne source pour comprendre les régions...
A+
qhhu Messages postés 66 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 octobre 2009
24 nov. 2008 à 18:59
Excellente source !
Il y a longtemps que je n'avais pas vu une source aussi bien commentée et construite !
Exactement ce qu'il me fallait ; un mot : BRAVO !!
cs_jeron Messages postés 29 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 25 juillet 2014 2
20 mai 2013 à 00:50
comment faire pour la rendre semi-transparente ? avec l'api 32 SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED );
// 70% alpha
m_pSetLayeredWindowAttributes(hwnd, 0, (255 * 40) / 100, 0x00000002);

mais ça ne marche pas.

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.