tarretg
Messages postés22Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention 7 août 2007
-
23 juil. 2007 à 16:45
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 2013
-
24 juil. 2007 à 08:30
Bonjour,
Je développe une petite application en Win32.
Lorsque l'utilisateur fait un choix sur une ComboBox, je voudrais que la valeur de mes controles "Static Text" changent.
J'utilise donc la fonction SetDlgItemText comme suit:
Le problème est que je réécris par dessus mon ancien texte! Je n'arrive pas à effacer le texte qu'il y avait précédemment dans mon Static!
Je suis obligé de réduire la fenetre et de la réouvrir pour que cela soit rafraichi avec simplement le nouveau!
J'ai essayé avec UpdateWindow, mais rien à faire...
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 23 juil. 2007 à 18:27
Oui oui je sais, mais ce qui m'a fait penser à ca c'est "Je suis obligé de réduire la fenetre et de la réouvrir pour que cela soit rafraichi avec simplement le nouveau!"
C'a m'était déjà arrivé il y a longtemps, je ne sais plus trop les circonstances, et utiliser InvalidateRect avant le UpdateWindow m'avait permi de corriger le problème.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 23 juil. 2007 à 19:18
InvalidateRect ne prend que trois paramètre normalement
Il faudrait mettre le dernier à 0 sinon on risque de se retrouver avec deux textes superposés dans le static
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 23 juil. 2007 à 17:45
Salut,
Normalement, dans un static, le nouveau texte devrait écraser l'ancien. Il parait que ton static a un comportement non standard. Montre-nous un peu plus de code.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 23 juil. 2007 à 18:07
ctx_man >> SetDlgItemText(), comme SetWindowText(), envoie le message WM_SETTEXT à la procédure par défaut du Static. En traitant ce message, cette procédure efface l'ancien texte et le remplace par le nouveau. Il y'a donc quelque chose qui l'empêche de l'effacer. On peut avoir ce genre de comportement avec les Static transparents.