Bonjour,
je place un control Text Editor (ou encore Static Text) sur mon UI.
Je souheterai sur un clic de bouton modifier le texte de ce control.
ça fait 2h que je galère et j'aurai vraiment besoin d'un coup de main.
Merci d'avance![]()
Bonjour,
je place un control Text Editor (ou encore Static Text) sur mon UI.
Je souheterai sur un clic de bouton modifier le texte de ce control.
ça fait 2h que je galère et j'aurai vraiment besoin d'un coup de main.
Merci d'avance![]()
Le modifier dans l'éditeur ou dans le programme ?
Dans le programme, ça dépend selon que le TextEdit est mappé en tant que chaîne ou en tant que controle.
En tant que chaîne, on a un truc du genre:
Et en tant que contrôle, on a un truc du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TypeRetour CMonUI::OnBouton() { UpdateData(TRUE); m_edit1 = _T("Coucou"); UpdateData(FALSE); }
La méthode pour mapper un contrôle à une variable membre dépend de la version de Visual...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 TypeRetour CMonUI::OnBouton() { m_edit1.SetWindowText(_T("Coucou")); }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Quelle est la différence qu'il soit mappé en tant que chaine ou en tant que control finalement, si je veux uniquement modifier son texte ??
Par contre venant d'un monde C# où label.Text suffit, je voudrai savoir à quoi sert le define
que tu utilises ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part _T
Merci![]()
_T(), ça sert pour la compilation en mode Unicode.
En fait, sous Windows, chaque fonction existe en deux versions, char et wchar_t. Le type TCHAR est un type dépendant du mode. Ainsi, ces trois codes sont valides:
Généralement, il est conseillé d'utiliser le troisième code, car ainsi il suffit de changer une option dans le projet pour choisir d'utiliser la version char ou la version wchar_t.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MessageBoxA(NULL, "Bonjour tout le monde!", "Msg", MB_OK); MessageBoxW(NULL, L"Bonjour tout le monde!", L"Msg", MB_OK); MessageBox(NULL, _T("Bonjour tout le monde!"), _T("Msg"), MB_OK);
Si tu regardes la déclaration de MessageBox, tu verras un truc de ce genre:
C'est pourquoi sous Windows quand le code est bien fait, pratiquement toutes les chaînes sont entourées de _T() ou TEXT() (c'est la même chose).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #ifdef UNICODE #define MessageBox MessageBoxW #else #define MessageBox MessageBoxA #endif
Si tu enlèves le _T() pour une fonction normale de Windows, tu verras que selon le mode, tu devras mettre L devant la chaîne ou bien rien du tout.
Pour les CString, je ne crois pas, car la fonction est surchargée: Si on utilise le "mauvais" type de chaîne, la fonction convertira d'elle-même. Mais ça ralentira le programme, car si on met le "bon" type dès le début, pas besoin de convertir.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
ok
Merci pour tes réponses, g pu faire ce que je souhaitais.
A bientotet bonne journée
Bonjour,
désolé de déterrer un topic si vieux.
mais je voudrais savoir la méthode de changer le texte a l'aide du RAD de MFC
Partager