[MFC] BOUTON CUSTOMISÉ AVEC TRANSPARENCE

Signaler
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
-
Messages postés
1
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
21 décembre 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37518-mfc-bouton-customise-avec-transparence

Messages postés
1
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
21 décembre 2009

Salut,

Pour corriger la fuite mémoire, il faut ajouter :

ReleaseDC(pDC);

à la fin de la méthode : void CustomButton::DessinBouton(int itemState)

(Tu avais oublié le ReleaseDC() qui correspond au GetDC())

@++
Messages postés
1
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
5 septembre 2009

y'a une fuite mémoire, si tu fais appel au gestionnaire de tâche, ton process grossi ... sinon c'est cool
Messages postés
2
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
14 avril 2008

C'est bien mais j'ai voulu l'inclure dans un de mes logiciels mais pas facile à faire.
donc je vais rester avec une interface austère digne des mfc.
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
2 façons plus "propre" de le faire :

1) Simplement avoir un bouton avec le style WS_OWNERDRAW, gerer le WM_DRAWITEM et desiner le bitmppa qui faut en fct de l'état du bouton (press, click géré par le système)

2) subclasser le control et gérer les messages WM_MOUSEMOVE, WM_LBUTTONCLICK et compagnie, dessiner uniquement dans WM_PAINT et demander le dessin par InvalidateRect
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Eh ben... Ca donnerait presque envie d'utiliser les MFC ta capture...