!!! Pb rafraîchissement !!! [Résolu]

Signaler
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
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

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

ciao...
BruNews, MVP VC++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Le code de BruNews répond parfaitement à ton problème

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
et pourquoi va bon dans mon exemple ???

ciao...
BruNews, MVP VC++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Tu mets le include en commentaire tout simplement

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Vire ces afx et autres précompilés.

ciao...
BruNews, MVP VC++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]