Afficher un string dans un fenetre (win32)

Résolu
XKaliBur
Messages postés
45
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
13 février 2007
- 27 déc. 2006 à 19:22
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
- 27 déc. 2006 à 20:43
Bonjour,

Mon problème est le suivant :

J'ai une variable de type string et j'aimerais l'afficher dans un static sur ma fenetre,
normalement j'utilise la fonction SetDlgItemText lorsque j'ai variable de type char.

Mais la j'aimerais bien trouver un moyen sans avoir à convertir le string en char...

Merci d'avance.

6 réponses

yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
27 déc. 2006 à 19:47
std::string::c_str()
3
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
27 déc. 2006 à 20:43
SendDlgItemMessage(hDlg, IDC_EDIT, WM_GETTEXT, 24, (LPARAM)Str.c_str());

Ca c'est vraiment une horreur!

Evidemment il faut un buffer local, puis faire une nouvelle string a partir de celui-ci

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
27 déc. 2006 à 19:50
System::String::ToCharArray()
0
XKaliBur
Messages postés
45
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
13 février 2007

27 déc. 2006 à 20:03
Merci ça marche nickel.

Un dernier truc comment recupérer le contenu d'une edit box dans un string ??

Car SetDlgItemText(_Dlg,IDC_STATIC1,Str.c_str()); marche bien,

mais GetDlgItemText(_Dlg,IDC_EDIT,Str.c_str(),65535); ne fonctionne pas.
   
0

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

Posez votre question
yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
27 déc. 2006 à 20:22
string Str("000000000000000000000000");
SendDlgItemMessage(hDlg, IDC_EDIT, WM_GETTEXT, 24, (LPARAM)Str.c_str());

A mon avis, ça devrait marcher, pas testé...
0
yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
27 déc. 2006 à 20:28
Mais il vaut certainement mieux passer par un buffer de char[] puis de
reconstruire le string.

char buf[256];
SendDlgItemMessage(blabla, buf);
string Str(buf);
0