SetDlgItemText

Résolu
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010 - 16 août 2003 à 13:25
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010 - 16 août 2003 à 17:09
je programme en Visual Studio .Net C++

je ne comprend pas pourquoi avec "SetDlgItemText", on ne pas avoir 2 lignes en dessous.

g mi : Multiline= True;

exemple :

....
SetDlgItemText(hdlg,IDC_EDIT1,"toto");
....
....
SetDlgItemText(hdlg,IDC_EDIT1,"titi");
.....

je constate que "toto" est replacé par "titi", et je vx les 2,
c posible ?

il y a px étre une autre fonction,
Merci

15 réponses

cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 17:09
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2003 à 13:45
SetDlgItemText place le texte en remplaçant l'ancien eventuellement. Prepare tout ton texte dans un buffer avant et appelle ensuite SetDlgItemText.
Sinon tu emploies;
SendMessage(htxt, EM_REPLACESEL, 1, (long) pszAutreText);
qui permet ajout, remplacement etc... Fais des tests avec et tu verras qu'on peut tout faire ainsi.
BruNews, ciao...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
16 août 2003 à 13:46
Evidemment, il n'y a qu'un chaine pour un edit. Si tu veux qu'il y ait la chaine "tototiti", il faut que tu récupère la chaine présente (GetDlgitemText(...)) donc tu obtiens "toto" puis tu ajoute la chaine "tit" avec strcat et puis tu mets la nouvelle chaine avec SetDlgItemText.
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 13:49
ok, merci, je vai esyer avec :

SendMessage(htxt, EM_REPLACESEL, 1, (long) pszAutreText);

Merci
0

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

Posez votre question
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 15:26
pourquoi :

SendDlgItemMessage(hdlg, IDC_EDIT1, LB_ADDSTRING, 0, (LPARAM)"toto");
ne fonctionne pas

et que :
SendDlgItemMessage(hdlg, IDC_LIST, LB_ADDSTRING, 0, (LPARAM)"toto");
fonctionne

g fait strictement la mm chose
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
16 août 2003 à 15:38
Salut,
Le 1er c'est un message LB_ADDSTRING vers une EDIT.
Ca risque pas de fonctionner.
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 16:06
j'ai esayé plain de chose a la place de LB_ADDSTRING
rien a faire, trouve pas.

WM_SETTEXT
WM_GETDLGCODE
EM_LIMITTEXT
EM_GETSEL
WM_GETTEXT

c koi stp
MERCI
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
16 août 2003 à 16:11
Pour quoi faire ? ajouter du texte ? dans IDC_EDIT ?
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 16:16
je veux aficher du test ds Edit Box
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
16 août 2003 à 16:19
Alors:

SetDlgItemText(hDlg, IDC_EDIT, "tontexte");

ou

SendDlgItemMessage(hDlg, IDC_EDIT, WM_SETTEXT, 0,(long) "coucou");
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 16:28
Merci, j'avai réuci avec la 1er solution

mai, ça fonctionne pas ci on en ajoute plusieurs a la suite

A chaque foi que je clique sur "OK", je voudrai afficher plain de coucou.

case IDC_OK:
SendDlgItemMessage(hdlg, IDC_EDIT1, WM_SETTEXT, 0,(long) "coucou");
return 0;

ça fonctionne tres bien avec la List BoX, et pas avec SendDlgItemMessage.
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
16 août 2003 à 16:41
Salut,
Tu peux utiliser la méthode de BruNews elle marche tres bien !!
Tu récuperes da taille du texte de l'edit avec GetWindowTextLength,
Tu place la selection dans l'edit derriere le dernier caractere (EM_SETSEL),
Tu envoie un message EM_REPLACESEL avec ton nouveau texte,

Et il sera ajouté au texte précédent, dans ton edit box.
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 16:44
Ok, pour cet méthode,
Je suis prés a tt, depuis le tps que je cherche.

tu px me donner le morceau de code stp
Merci encore
aardman
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
16 août 2003 à 16:53
...
Tu pourrais chercher un peu quand meme, je t'avais donné les fonctions principales a utiliser.

// declarer int iLen en global
iLen = GetWindowTextLength(GetDlgItem(hDlg, IDC_EDIT));
SendDlgItemMessage(hDlg, IDC_EDIT, EM_SETSEL, iLen, iLen);
SendDlgItemMessage(hDlg, IDC_EDIT, EM_REPLACESEL, 0,(long) "lenewtext");
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
16 août 2003 à 17:08
MERCI 1000 foi
ça fonctionne

:)
0
Rejoignez-nous