Prob SetDlgItemText

Résolu
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006 - 20 juil. 2005 à 14:17
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006 - 21 juil. 2005 à 13:18
Salut a tous.

Me revoici encore une fois avec un probleme a la con...

Voila... J'essaie de betement mettre un texte dans une edit box comme ceci :

SetDlgItemText(hDlg,IDC_ILOT,"test");

Mias voila.. Il me dit qu'il ne peut convertir mon char en const unsigned short *.

J'ai égalment essayer comme cela (vu sur le forum):

SendDlgItemMessage(hDlg, IDC_ILOT, EM_REPLACESEL, 0,(long) "test");

Mais la je me retrouves avec de jolis carrées dans la zone d'affichage...

Quelqu'un aurait il une solution svp ?


<CENTER>Mess with the best
Die Like the rest</CENTER>

13 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
20 juil. 2005 à 14:45
Salut,

Il parait que ton code utilise UNICODE. Dans ce cas il faut faire:

SetDlgItemText (hDlg, IDC_ILOT, TEXT("test") );
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 juil. 2005 à 12:31
comme normal y a un 'T' qui m'avait échappé...

TCHAR buf[24];
TCHAR *strtmp1;

strtmp1 = buf;
GetDlgItemText(hDlg,IDC_LIEU,strtmp1,6);

ciao...
BruNews, MVP VC++
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
20 juil. 2005 à 14:50
HuHu. Merci beaucoup... Va vraiment falloir que je bosses ce maudit Win32.. Les MFC ca m'a ramoli le cerveau ;)

Encore merci


<CENTER>Mess with the best
Die Like the rest</CENTER>
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 juil. 2005 à 15:30
Saine réaction !!!

ciao...
BruNews, MVP VC++

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

Posez votre question
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
21 juil. 2005 à 09:35
Merci merci. Mais j'avou que pour certain truc j'en chie un peu quand meme... Surtout tout ce qui est interaction avec editbox,..

D'ailleurs... ca doit être le meme genre de probleme que l'autre mais je n'arrive pas a recuperer le code des editbox :D

Vala ce que j'envoi.

GetDlgItemText(hDlg,IDC_LIEU,strtmp1,LEN_LIEU);

Je me doutes que les problemes vient du strtmp1 qui ne doit pas etre caster comme il faut mais pas moyen de trouver.

Quelqu'un pourrait m'aider ?


<CENTER>Mess with the best
Die Like the rest</CENTER>
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
21 juil. 2005 à 09:45
Petite precision... strtmp1 est un char*.

De plus, je viens de remarquer que la solution du dessus ne fonctionne pas si l'on remplace "test" par ue variable...


<CENTER>Mess with the best
Die Like the rest</CENTER>
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 juil. 2005 à 10:54
Tu ne voudrais pas écrire à l'adresse d'un pointeur qui ne pointe sur rien par hasard ?

ciao...
BruNews, MVP VC++
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
21 juil. 2005 à 11:12
Voila mon message d'erreur. Que je tente de recuperer ou d'écrire dans mo edit box.

cannot convert parameter 3 from 'char *' to 'unsigned short *'

Et voila les codes que j'utilises :

case UM_SCAN:
char* strtmp1, strtmp2;


GetDlgItemText(hDlg,IDC_LIEU,strtmp1,6);

et :

void SetValue(HWND hDlg, int control, char* value)
{
SetDlgItemText(hDlg,control,value);
}

Après j'admets que la je sais vraiment pas...


<CENTER>Mess with the best
Die Like the rest</CENTER>
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 juil. 2005 à 11:36
strtmp1 NE POINTE SUR RIEN (comme prévu).
Comme son nom l'indique, un POINTEUR DOIT POINTER SUR UNE ADRESSE !!!

char buf[24];
char *strtmp1;
strtmp1 = buf;

ciao...
BruNews, MVP VC++
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
21 juil. 2005 à 11:47
strtmp1 = strlieu;
GetDlgItemText(hDlg,IDC_LIEU,strtmp1,6);

J'ai essayer comme ca... mais j'ai toujours le meme message d'erruer. J'ai également essayer en remplacant strtmp par strlieu et pareil..


<CENTER>Mess with the best
Die Like the rest</CENTER>
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 juil. 2005 à 12:00
ah mais tu es en unicode...
alors ce n'est pas char* qu'il te faut mais CHAR* ou tout autre type Windowsien qui représente un 'WORD*'.

ciao...
BruNews, MVP VC++
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
21 juil. 2005 à 12:17
Je suis vraimentdésolé de faire mon lourd. Mais est ce que tu pourrais me filler un petit exemple... Parce que je suis completemet à l'ouest... Pas moyen d'y arriver... Je vois bien tout les bout qu'il faut mais pas moyen de les assembler...

Désolé :(


<CENTER>Mess with the best
Die Like the rest</CENTER>
cs_raton Messages postés 39 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 7 juillet 2006
21 juil. 2005 à 13:18
Merci beaucoup :)

Ca marche nickel !


<CENTER>Mess with the best
Die Like the rest</CENTER>
Rejoignez-nous