!!! Pb rafraîchissement !!!

Résolu
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 8 mars 2007 à 17:19
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 9 mars 2007 à 11:22
Salut à toutes et à tous !

Voilà mon souci.
J'ai un static contenant un texte (un pourcentage) que je modifie de temps en temps.
La fenêtre mère de mon static, a une image de fond.
Donc pour que l'on puisse voir l'image derrière le texte, je traite le message WM_CTLCOLORSTATIC comme ceci :
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)GetStockObject(NULL_BRUSH);
Jusque là tout va bien.
Sauf que lorsque je modifie le texte du static, le nouveau texte se superpose au précédent (100 % par dessus 99 %. par dessus....par dessus 0%).
Je me retrouve donc avec un tas noir illisible.

J'ai déjà essayé de forcer le rafraîchissement (UpdateWindow, RedrawWindow, InvalidateRect, InvalidateRgn,...).
Auriez-vous une autre idée ou solution à me proposer ? Un bout de code ou un lien ?

Je commence à saturer ! J'ai la tête qui chauffe c'est horrible !
Si vous me cherchez j'ai la tête dans la cuvette.

Merci d'avance pour votre aide. Tout renseignement est le bienvenu.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]

11 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 mars 2007 à 18:19
Regarde si ça te convient:
http://www.cppfrance.com/code.aspx?id=9674

ciao...
BruNews, MVP VC++
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
8 mars 2007 à 18:55
Le code de BruNews répond parfaitement à ton problème

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
8 mars 2007 à 18:34
Malheureusement non !
Le WM_CTLCOL... est traité pareil que moi et le InvalidateRect(StatichWnd, 0, 1), je l'avais déjà essayé.
J'ai réessayé mais toujours sans succès.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 mars 2007 à 18:43
et pourquoi va bon dans mon exemple ???

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
8 mars 2007 à 18:45
Au cas où ça vous aiderait à résoudre mon problème, lorsque je minimise la fenêtre puis la restaure, le texte s'affiche clairement (avant d'être écrasé à nouveau s'il change), il est rafraîchit.
Par contre, si je passe une autre fenêtre devant ou sors le texte de l'écran, le rafraîchissement n'a pas lieu.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
8 mars 2007 à 19:09
Oui vecchio56, le résultat est exactement ce que je veux. Son exe le prouve.
Les différences que j'ai remarqué pour l'instant, c'est que l'image est dans un static (moi fond de la fenêtre) et que ma fenêtre et mon static sont créés avec CreateWindowEx.
En ayant mis l'image dans un static, le résultat ne change pas de mon côté.
Par contre avec la source de BruNews, impossible de compiler. Il me dit qu'il ne trouve pas afxres.h.
Je suis sous Visual C++ 2005 Express.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
8 mars 2007 à 19:21
Tu mets le include en commentaire tout simplement

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 mars 2007 à 19:22
Vire ces afx et autres précompilés.

ciao...
BruNews, MVP VC++
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
8 mars 2007 à 19:58
C'est bon c'est compilé et ça marche nickel pour le programme de BruNews.
Je reprends ça demain parce que là je sature.
J'ai les idées qui tournent en rond et j'avance pas.
Merci pour votre aide, je vous tiens au courant pour la suite.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
9 mars 2007 à 10:08
Ca y est j'ai trouvé ! Grâce au code de BruNews.
Je devais vraiment saturé hier parce que c'était tout bête en fait. J'ai limite honte.
J'ai gardé mon image de fond sur la fenêtre et pour rafraichier le texte, j'ai fait ceci :

RECT Rect;Rect.left Gauche; Rect.right Gauche + Largeur;Rect.top Haut; Rect.bottom Haut + Hauteur;
InvalidateRect(FenetrehWnd, &Rect, true);
SetWindowText(LabelhWnd, "blabla");

Donc j'étais vraiment pas loin du truc avant même de poster le message.
Merci à tous pour votre aide.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
9 mars 2007 à 11:22
Petite correction, il vaut mieux faire le InvalidateRect() après le SetWindowText().

Encore merci !

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
Rejoignez-nous