Utilisation setwindowtext pour afficher sur une boite de dialogue

eklouste Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 1 septembre 2008 - 20 août 2008 à 14:51
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 21 août 2008 à 17:38
Slt a tous

En fait j'ai cree deux boite de dialogue A et B. Je veux recuperer du texte du control edit  de boite de dialogue A et l'afficher ce texte  dans la boite  de dialogue B.
Pour linstant j'arrive a recuperer le texte du control edit du de la boite de dialogue A par le code suivant:

CEdit* login= ( CEdit*) GetDlgItem(IDC_text)  //  IDC_text controle de saisie du texte
login->GetWindowText( text) // text est le Cstring associe au controle d'edit

Je sais pas comment afficher le texte saisie sur ma nouvelle boite de dialogue. SVP aidez moi ca fait 2 semaines que je galere la dessus.

Merci encore  

7 réponses

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
20 août 2008 à 15:43
Salut,

Faut voir comment peuvent communiquer tes 2 boites de dialogue.
Si elles sont instanciées par la même classe, tu devrais utiliser cette classe pour faire transiter l'info (avec SendMessage, par exemple).

Sinon, il faut que ta 1ere boite de dialogue connaisse le handle (hwnd) de l'autre.
0
eklouste Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 1 septembre 2008
20 août 2008 à 16:59
tu pourais etre un peu plus precis ou me donner un example vu que je suis debutant en c++. merci encore
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
20 août 2008 à 17:21
Pas évident comme ça, il faut regarder un peu les exemples sur le Net, mais en gros:



Dans ta classe mere :


CMaDialog1 m_Dlg1;


CMaDialo2 m_Dlg2;

// une fois les boite de dialogues crées tu crées une fonction style :
m_Dlg1.SetHandleDgl1(m_Dlg1.m_hWnd); // qui sauvegarde dans m_hDlg2 (de type HWND) par ex

//dans CMaDialog1 quand tu veux envoyer vers Dlg2 tu fais par exemple
SendMessage(m_hDgl2, WM_TRANSFERT_DONNEES, pointeur sur ta string, 0);

en global à l'appli tu as
#define WM_TRANFERT_DONNEES WM_USER+100

Et le plus compliqué, dans CMaDialog2.h :
afx_msg void OnTransfertDonnees(WPARAM wParam, LPARAM lParam);

dans le cpp :
BEGIN_MESSAGE_MAP(CMaDialog, CDialog)
 //{{AFX_MSG_MAP(CMadialog)
...
 //}}AFX_MSG_MAP
 ON_MESSAGE(WM_TRANSFERT_DONNNES, OnTransfertDonnees)
END_MESSAGE_MAP()

void OnTransfertDonnee(WPARAM wParam, LPARAM lParam)
{
 // ton code pour traiter la chaine
CString *myStr = (CString *)wParam;
}

Voila c'est à peu près comme ça.

Bon courage
0
eklouste Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 1 septembre 2008
20 août 2008 à 18:09
merci encore mais ca reste un peu flou en fait j'ai vu qu'il a une fonction setdlgtext qui permet l'affichage aussi mais mais j'ai des erreurs  a propos des arguments. Quelqu'un pourrait m'aider svp. merciencore
0

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

Posez votre question
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
21 août 2008 à 09:10
En effet, je ne suis pas spécialiste de l'IHM, je ne connaissais pas cette fonction.

La fonction me parait simple.
Maintenant il va falloir que tu montre une partie de ton code, pour voir ton erreur, sinon ca va etre tres compliqué de t'aider.
0
eklouste Messages postés 18 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 1 septembre 2008
21 août 2008 à 17:21
En fait g cree 2 classes associes a deux differentes boites de dialogue en mfc. Le but est de recuperer le texte entrer dans l'edit box de la premiere boite et l'afficher sur celui de la deux boite. Qulqu'un pourrait ma'aider svp
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
21 août 2008 à 17:38
dans MAIN :
CMaDialog1 m_Dlg1;


CMaDialo2 m_Dlg2;
.....
 m_Dlg1.SetHandle(m_Dlg2.m_hWnd);

SetHandle est une fonction à toi qui va mémoriser le handle de l'autre fenetre dans la variable m_hDlg2 par ex.


dans Dlg1:


SetDlgItemText(m_hDlg2, ID_CONTROL_DLG_2, "ton text");

Sans voir ton code je ne peux pas en dire plus.
0
Rejoignez-nous