GetWindowText

cs_Toobad
Messages postés
14
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
14 novembre 2002
- 27 mars 2002 à 19:55
Artiste_Gunm
Messages postés
33
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
22 juillet 2008
- 22 mars 2005 à 09:17
J'utilise GetWindowText avec VC++6 pour reprendre le texte d'une edit box. Lorsque mon prog appel la function il fait une erreur dans le module USER.EXE.
J'en conclut que je me sert pas bien de la fonction alors comment on s'en sert???
A voir également:

8 réponses

jcecchi
Messages postés
117
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
14 janvier 2003
3
27 mars 2002 à 20:01
Poste ta ligne pour voir.
0
cs_Toobad
Messages postés
14
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
14 novembre 2002

28 mars 2002 à 13:19
hkey est un HWND déclaré en global
Je crois que c'est GetWindowText et pas GetWindowTextLength qui bugue.

INT size,pass;
LPTSTR buffer;
size=GetWindowTextLength(hkey);
GetWindowText(hkey,buffer,size);
0
jcecchi
Messages postés
117
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
14 janvier 2003
3
28 mars 2002 à 16:14
J'ai pas percute tout de suite mais pour recuperer le texte d'une editbox, c'est pas GetWindowText qu'il faut utiliser mais GetDlgItemText.
GetWindowText recupere le titre de ta fenetre.

GetDlgItemText(HWND hDlg, int ID, LPTSTR buffer, int size);

Il suffit apres de choisir size et buffer de taille suffisante pour ne pas avoir de depassement.
0
cs_Xs
Messages postés
368
Date d'inscription
mercredi 14 novembre 2001
Statut
Membre
Dernière intervention
1 septembre 2008

28 mars 2002 à 19:23
alors la, si c'est de getDlgItemText dont tu parles, je viens d'en baver suffisament pour pouvoir t'aider !

un exemple qui precise ce que jcecchi ta dit :

ta var dans laquelle va etre placé ton texte doit etre comme ceci :

char var[size];

et non pas :

char *var[size];

comme stipulé dans MSDN.

puis, ton get doit etre comme cela :

GetDlgItemText(hDlg,IDC_VAR,var,255);

où IDC_ART est le nom de ton controle duquel tu recupere la string.

var, ben c'est ou est stocké le contenu de IDC_VAR.

et 255, ca veut dire qu'il prend 255 caracteres.

en esperant t'avoir éclairci
0

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

Posez votre question
apientry
Messages postés
16
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
20 juillet 2002

5 avril 2002 à 10:36
Xs a raison mais pour plus de souplesse:
utilise:
GetDlgItemText(hDlg,IDC_VAR,var,sizeof(var));
avec les déclarations de Xs
comme ca tu peux récupérer autant de caractères que tu veux.
a+
apientry
0
petronius
Messages postés
14
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
1 juillet 2005

22 juin 2003 à 12:20
Je vient de trouver un truc encore plus simple :
pour ajouter du texte :
SendMessage(ListWnd, LB_ADDSTRING, 0, (LPARAM)(LPCTSTR) "texte");
avec ListWnd le handle du label
pour recuperer le texte :
char var[255];
SendMessage(ListWnd, LB_GETTEXT, 0, (LPARAM)(LPCTSTR) var);

voila ca marche nickel et c'est pas trop compliqué du moment qu'on a le handle....
0
freekid
Messages postés
55
Date d'inscription
dimanche 19 septembre 2004
Statut
Membre
Dernière intervention
8 mai 2011

26 sept. 2004 à 11:15
j'ai suivi la discussion et essayé la derniére méthode:

char var[255];
SendMessage(ListWnd, LB_GETTEXT, 0, (LPARAM)(LPCTSTR) var);

le seul probléme c'est que par la suite quand je fait cout << var
ca refuse de m'afficher le contenu de la fenetre, a la place ca me met un vieu symbole ascii
0
Artiste_Gunm
Messages postés
33
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
22 juillet 2008

22 mars 2005 à 09:17
Quelqu'un sait comment on fait pour sauter une ligne dans une editbox car lorsque j'utilise 0x0D ou '\r' l'editbox m'affiche un caractére genre DOS : |||
Assez bandant pour faire un historique propre !!!

Voilà mon code:

UpdateData(TRUE);
LPTSTR Emission= TEXT_EMISSION.GetBuffer(1);
LPTSTR History= TEXT_HISTORY.GetBuffer(1);
strcat((char *)History,(char *)Emission);
// Je voudrais pouvoir rajouter :
//strcat((char *)History,'\r');
TEXT_EMISSION.ReleaseBuffer();
TEXT_HISTORY.ReleaseBuffer();
UpdateData(FALSE);
TEXT_EMISSION='\0';
UpdateData(FALSE);

The Artiste-Gunm
0