UpdateData et Thread

[Résolu]
Signaler
Messages postés
40
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
29 décembre 2010
-
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
-
Bonjour

voila, je cherche a mettre un jour l'affichage d'un Edit Control depuis un Thread

J'ai d'abord constaté à mes dépend qu'il n'est pas possible d'utiliser UpdateData (provoque un ASSERTION FAILED)

Un post vieux de 4 ans parle de la solution suivante :
si ma variable de controle s'apelle c_tbx :
c_tbx.SetWindowTextW( ... )

mon probleme, c'est que le type de donnée à filer en argument est "LPCTSTR" ... et ça ... moi pas connaître ...
surtout que ce que je veux afficher dans mon Edit Control, c'est un bête int . (j'ai essayé avec un cast, du style
c_tbx.SetWindowTextW((LPCTSTR)i)

mais celà ne fonctionne pas...

je suis complètement débutant en MFC, hier, je ne savais pas qu'il fallait associer une varible à un contrôle ...

merci pour votre aide

Daemonight
<----------------------------------------------->
On reconnait un bon developpeur au baobab qu'il a dans la main...

4 réponses

Messages postés
40
Date d'inscription
mardi 24 août 2004
Statut
Membre
Dernière intervention
29 décembre 2010
1
Justement, j'ai pas de probleme en C, je me debrouille assez bien, et je ne PEUT PAS abandonner ce fatras, pour la bonne et simple raison que je ne programme pas ce truc pour le plaisir, mais pour un projet (suis en école d'ingénieur informatique / électronique)...
Juste que je ne savais pas que LPCTSTR était un pointeur (on a eu AUCUN cours de vrai C++, mais maintenant que je le sais, je me rend compte à quel point c'est abérant de le caster en entier, effectivement ! )...
bref, j'ai trouvé une solution en utilisant une méthode de CString :

    CString temp;
    temp.Format( _T("%d"), capteur.Battery);
    c_tbx_batt.SetWindowTextW( temp );

et j'ai galéré pendant une bonne demi-heure à cause du _T ... ... pas compris à quoi ca sert, mais ca ne fonctionne pas sans.
Merci quand même pour vos réponses éclairantes

++

<----------------------------------------------->
On reconnait un bon developpeur au baobab qu'il a dans la main...
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
LPCTSTR c'est un pointeur sur caractères type char (8 bits) si t'es en ANSI ou wchar_t (16 bits) si t'es en UNICODE.
faut que t'utilises une fonction de conversion d'entier à chaîne de caractères; puis-je te suggérer de la faire toi-même? Bon exercice.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Voila ce que c'est de commencer avec des surcouches cachant le code (MFC ici, toute autre serait idem).

cast d'un entier en pointeur chaine, c'est un non sens absolu.
Abandonne tout ce fatras et plonge toi dans un bouquin de C sinon tu n'apprendras jamais rien ainsi.

ciao...
BruNews, MVP VC++
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
1
Bonsoir,

_T (ou _TEXT) est une macro qui transforme la chaîne passée en paramètre en chaîne UNICODE si le programme utilise UNICODE (la chaîne est préfixée avec L) et en chaîne "normale" si le programme n'utilise pas UNICODE (le _T ne sert à rien dans ce cas).
Jean-François