Modifier un Edit [Résolu]

Ziman 247 Messages postés dimanche 27 avril 2003Date d'inscription 26 septembre 2008 Dernière intervention - 22 août 2006 à 02:59 - Dernière réponse : Ziman 247 Messages postés dimanche 27 avril 2003Date d'inscription 26 septembre 2008 Dernière intervention
- 22 août 2006 à 16:47
Bonjour,

mon problème est simple. J'ai ma fenetre principale qui contient un edit et un bouton. Le bouton fait apparaitre une DialogBox avec la même configuration. Je voudrai que quand je clique sur le bouton de la DialogBox, le contenu de l'edit de celle-ci se mette dans l'edit de la feuille principale.

J'ai essaye un SetWindowText, en vain. J'ai aussi essayé un SendMessage avec WM_SETTEXT et ca marche pas non plus, ca renvoie False.

Quelqu'un pourrait m'éclairer ? merci

["http://ziman4000.free.fr" www.vb6team.fr.st]
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 22 août 2006 à 16:41
3
Merci
Tu redéclares un HWND hTB dans WindowProcedure, ce qui masque le hTB global. Le hTB global n'est donc pas initialisé. Il faut enlever le hTB local dans WindowProcedure et c'est gagné

_____________________________________
Un éditeur de ressources gratuit pour Windows

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de vecchio56
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 22 août 2006 à 03:14
0
Merci
Si t'as nouvelle Dialog est enfant de ta dialog principale, récupère le handle de ton édit avec GetParent et GetDlgItem tu pourras alors utiliser SendMessage ou SetWindowText

ULARGE_INTEGERJokyQi=QI("Joky"
Commenter la réponse de cs_Joky
Ziman 247 Messages postés dimanche 27 avril 2003Date d'inscription 26 septembre 2008 Dernière intervention - 22 août 2006 à 03:41
0
Merci
Elle n'est pas parent, enfin, je ne pense pas, mais de toute façon le handle de mon TextBox est déclaré comme global et depuis ma DialogBox, j'ai accès à celui-ci, le soucis ce n'est pas le Handle mais le fait que le texte ne veut pas se changer. J'ai été voir sur MSDN qui me dit pour SetWindowText :

To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText.

Je me dit que c'est pour ca que SetWindowText ne marche pas. J'ai donc essayé le SendMessage avec WM_SETTEXT et voici ce que MSDN me dit :

The return value is TRUE if the text is set. It is FALSE (for an edit control)...

Donc apparemment ca ne marche pas pour un edit ... Que faire alors ?

["http://ziman4000.free.fr" www.vb6team.fr.st]
Commenter la réponse de Ziman
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 22 août 2006 à 13:50
0
Merci
Met c'est pas un autre processus si ?
Sinon c'est ptète la façon dont tu récupères le texte dans le nouvel Edit
Place des messagesBox un peu partout pour voir où tu en es. ;)

ULARGE_INTEGERJokyQi=QI("Joky"
Commenter la réponse de cs_Joky
cs_chris91 54 Messages postés jeudi 20 novembre 2003Date d'inscription 4 avril 2007 Dernière intervention - 22 août 2006 à 15:11
0
Merci
bonjour,

MSDN SetWindowText Function :
If the function fails, the return value is zero. To get extended error information, call GetLastError.

quel est le code erreur renvoyé ?
Commenter la réponse de cs_chris91
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 22 août 2006 à 15:31
0
Merci
Salut,
Montre-nous ton code complet si c'est possible.
Commenter la réponse de racpp
Ziman 247 Messages postés dimanche 27 avril 2003Date d'inscription 26 septembre 2008 Dernière intervention - 22 août 2006 à 16:13
0
Merci
chris91 > Elle renvoie 0.

racpp tout le code ca va etre dur mais voilà l'essentiel :

en global :

static HWND hTB;

la création :

            hTB = CreateWindow("edit", "",
                               WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL ,
                               10, 220, 100, 20, hwnd,
                               (HMENU) 2, GlobalInstance, NULL);

L'appel :

                    case 3:

                        if (SendMessage(heEdit, WM_GETTEXTLENGTH, 0, 0) == 0) {
                            MessageBox (hwDlg, "Veuillez entrer un texte", "Erreur", MB_OK | MB_ICONERROR);
                        }
                        else
                        {
                            int index = SendMessage(hLB, LB_GETCURSEL, 0, 0);
                            SendMessage(hLB, LB_DELETESTRING, index, 0);
                            char *Texte = (char *) malloc (SendMessage(heEdit, WM_GETTEXTLENGTH, 0, 0) + 1);
                            GetWindowText(heEdit, Texte, SendMessage(heEdit, WM_GETTEXTLENGTH, 0, 0) + 1);
                            SendMessage(hLB, LB_INSERTSTRING, index, (LPARAM)Texte);
                           
                            SetWindowText(hTB, "jnnnnnn");

                            free(Texte);
                            EndDialog(hwDlg, 0);
                        }
                        break;

Ici j'ai mis "jnnnnnn" juste pour tester avec du texte simple.

["http://ziman4000.free.fr" www.vb6team.fr.st]
Commenter la réponse de Ziman
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 22 août 2006 à 16:18
0
Merci
char szText[1024] = 0;

GetWindowText(hEdit, szText, 1024);
if(szText[0] = 0)
    MessageBox(0, "Aucun texte", 0, 0x40);
else
    SetWindowText(hAutreEdit, szText);

ULARGE_INTEGERJokyQi=QI("Joky"
Commenter la réponse de cs_Joky
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 22 août 2006 à 16:23
0
Merci
char szText[1024] = 0;
Pas bien :)

La ligne SetWindowText(hTB, "jnnnnnn"); renvoie 0, c'est ca?

Que renvoie IsWindow(hTB)?

_____________________________________
Un éditeur de ressources gratuit pour Windows
Commenter la réponse de vecchio56
Ziman 247 Messages postés dimanche 27 avril 2003Date d'inscription 26 septembre 2008 Dernière intervention - 22 août 2006 à 16:27
0
Merci
C'est bizarre mais ca me renvoie 0. Ce que je ne comprend pas c'est que je fais aussi des opérations sur une ListBox depuis le meme bouton et pour la ListBox, ca marche à merveille mais pas pour le TextBox ...

["http://ziman4000.free.fr" www.vb6team.fr.st]
Commenter la réponse de Ziman
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 22 août 2006 à 16:31
0
Merci
Faudrait que tu nous donne un code complet illustrant de code. Essaie d'enlever le plus de choses possible de ton code pour garder juste ce qui ne marche pas, et reposte

_____________________________________
Un éditeur de ressources gratuit pour Windows
Commenter la réponse de vecchio56
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 22 août 2006 à 16:33
0
Merci
Pourquoi c'est pas bien ??? :o

ULARGE_INTEGERJokyQi=QI("Joky"
Commenter la réponse de cs_Joky
Ziman 247 Messages postés dimanche 27 avril 2003Date d'inscription 26 septembre 2008 Dernière intervention - 22 août 2006 à 16:35
0
Merci
Je ne programme en API WIN32 que depuis 2 jours, donc soyez indulgent sur la qualité du code :

Code

["http://ziman4000.free.fr" www.vb6team.fr.st]
Commenter la réponse de Ziman
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 22 août 2006 à 16:37
0
Merci
Joky> error C2075: 'szText' : l'initialisation d'un tableau nécessite des accolades

_____________________________________
Un éditeur de ressources gratuit pour Windows
Commenter la réponse de vecchio56
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 22 août 2006 à 16:39
0
Merci
ah ouai :'(
oups

ULARGE_INTEGERJokyQi=QI("Joky"
Commenter la réponse de cs_Joky
Ziman 247 Messages postés dimanche 27 avril 2003Date d'inscription 26 septembre 2008 Dernière intervention - 22 août 2006 à 16:47
0
Merci
Ah ... Je n'avais pas fait attention à cela, j'ai du me tromper de touche pour faire le couper coller car je pensais l'avoir enlevé de la déclaration locale.

Bete erreur mais merci de m'avoir aidé.

["http://ziman4000.free.fr" www.vb6team.fr.st]
Commenter la réponse de Ziman

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.