SetDlgItemText [Résolu]

Signaler
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010
-
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010
-
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
A voir également:

15 réponses

Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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.
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

ok, merci, je vai esyer avec :

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

Merci
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

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
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
Le 1er c'est un message LB_ADDSTRING vers une EDIT.
Ca risque pas de fonctionner.
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

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
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Pour quoi faire ? ajouter du texte ? dans IDC_EDIT ?
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

je veux aficher du test ds Edit Box
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Alors:

SetDlgItemText(hDlg, IDC_EDIT, "tontexte");

ou

SendDlgItemMessage(hDlg, IDC_EDIT, WM_SETTEXT, 0,(long) "coucou");
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

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.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
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.
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

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
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
...
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");
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

MERCI 1000 foi
ça fonctionne

:)