FONCTION GDI - MANIPULATION DC ( VERY DEBUTANT )

Signaler
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Messages postés
61
Date d'inscription
samedi 5 février 2005
Statut
Membre
Dernière intervention
20 avril 2006
-
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/31129-fonction-gdi-manipulation-dc-very-debutant

Messages postés
61
Date d'inscription
samedi 5 février 2005
Statut
Membre
Dernière intervention
20 avril 2006

attention aux "lol"
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Donc vala mise à jour, j'ai comme tu as dis passer un DC en paramètre...
Pour ce qui est du message de coucou, c du win32 mais bon rien de plus basic...

Et en effet c'est chiant les soeurs :)
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
je verrais demain lol j'ai une soeur :)
qui aime le tchat lol
Si ta une solution pour écrire sur la gueule a ma soeur avec un Device Context
TextOut( TinkiWinki, 0, 0, "Soeur a joky" )

Ou tinkiWinki est le handle :)
lol

Jméloigne la
@demain compagnon
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Bah ca dépend, tu fais comme tu veux, mais comme tu appelles ChangerCouleur pas seulement dans WM_PAINT, il faut que tu récupères un DC avant.
Je mettrais un HDC hdc en param de ChangerCouleur. Dans WM_PAINT tu récupère un DC avec BeginPaint/EndPaint comme j'ai écrit plus haut, et dans les autres case (WM_LBUTTONDOWN...) tu fais un GetDC/ReleaseDC
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Et donc faut que je vire le BeginPaint dans la fonction ChangerCouleur ???
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Pardon, je voulais dire:

HDC hdc = BeginPaint(hWnd, &ps);
ChangerCouleur(hdc);
EndPaint(hWnd, &ps);

dans WM_PAINT
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Je crois que tu as lu un peu vite le bouquin: dans ChangerCouleur tu récupère un DC avec GetDC, puis tu appelles BeginPaint qui te fournit un autre DC. Pire, quand tu recois WM_PAINT tu appelles BeginPaint, puis tu appelles ChangerCouleur, soit 1 GetDC et 2 BeginPaint...

Ce qu'il faut faire:
HDC hdc = BeginPaint(&ps);
ChangerCouleur(hdc);
EndPaint(&ps);