Problème avec dialogbox de dialogbox
Bonjour,
J’ai une première dialogbox (dialogbox1) modale décrite dans le fichier ressource que je lance par la fonction dialogbox avec sa propre callback, dans cette callback (callback1) je n’ai aucun problème pour lire le contenu de mes contrôles : edittext par GetDlgItemText ou listbox par SendMessage(clesurcontrole, LB_GETTEXT, …..) etc… Toujours dans cette callback lors de l’appui sur un bouton, je lance une 2ème dialogbox (dialogbox2) par une deuxième fonction dialogbox, celle-ci est encore modale décrite séparément dans le même fichier ressource et elle dispose de sa propre callback (callback2). Dans cette callback2 de cette dialogbox2 je récupère correctement la main lors du clic sur n’importe quel bouton, par contre j’ai un problème avec les contrôles edittext, je n’arrive pas lorsque je clique sur un bouton à lire le contenu des contrôles edittext, le GetDlgItemText avec le handle de la fenêtre d’origine ne donne rien, le GetDlgItem() pour récupérer avec la clé de la fenêtre d’origine un handle sur le contrôle afin d’utiliser SendMessage(clesurcontrole, LB_GETTEXT,…..) ne donne rien non plus. Je pensais qu’en fait c’était parce que je ne peux plus utiliser la clé de la fenêtre d’origine pour trouver les handle sur les contrôles ce qui m’a amené à chercher une autre clé de fenêtre avec nvellecle=GetWindow(cledorigine, GW_XXX) et ensuite à essayer ces nouvelles clés pour trouver un handle sur mes contrôles, mais rien n’y fait !!
Help please.
Thanks
Suite de mon message précédent
Création du 1er dialogue avec la clé de la fenêtre d’origine :
Code:
1 2 3 4 5 6 7 8
| nresult=DialogBox(n0instance, MAKEINTRESOURCE(Diagppal), clefenorigine, (DLGPROC)AnalyseDialog);
// lecture d’un EDITTEXT du 1er dialogue :
GetDlgItemText(clefenorigine, IDC_edittext,...);
// Lecture d’une LISTBOX du 1er dialogue:
clesurctrl=GetDlgItem(clefenorigine, IDC_listbox);
// puis
idx=SendMessage(clesurctrl, LB_GETCURSEL, 0, 0);
SendMessage(clesurctrl, LB_GETTEXT, idx, .......); |
Tout ceci fonctionne correctement
Ensuite
Dans la callback du 1er dialogue dans le traitement du contrôle IDC_new du 1er dialogue, je crée le 2ème dialogue :
Code:
1 2 3 4
| nresult2=DialogBox(n0instance, MAKEINTRESOURCE(Diag2), clefenorigine, (DLGPROC)AnalyseDiag2);
// Enfin, dans le traitement d’un bouton de ce 2ème dialogue, je veux lire le
// contenu de l’EDITTEXT IDC_date de ce 2ème dialogue par:
GetDlgItemText(clefenorigine, IDC_date, tampon1, Tdat); |
Et là je n’obtiens plus rien
J’ai essayé une autre solution qui consiste dans le 1er dialogue à d’abord chercher un handle sur le contrôle en cours de traitement, celui qui va créer le 2ème dialogue par :
Code:
1 2 3 4
| clectrl=GetDlgItem(clefenorigine, IDC_new);
// (IDC_new dans 1er dialogue)
// Puis j’ai utilisé ce handle pour créer le 2ème dialogue:
nresult2=DialogBox(n0instance, MAKEINTRESOURCE(Diag2), clectrl,(DLGPROC)AnalyseDiag2); |
Et enfin, dans le traitement d’un bouton de ce 2ème dialogue, pour lire le contenu de l’EDITTEXT IDC_date de ce 2ème dialogue j’utilise maintenant ce nouveau handle:
Code:
GetDlgItemText(clectrl, IDC_date, tampon1, Tdat);
Et je n’obtiens toujours rien :scarymov:!!