Accueil > Forum > > > > recuperation du texte d'une boite de dialogue
recuperation du texte d'une boite de dialogue
mardi 7 décembre 2004 à 13:22:09 |
recuperation du texte d'une boite de dialogue

demar016
|
pour ca j'utilise les tris focntions ci-dessous: GetNextDlgGroup GetDlgCtrID GetDlgItemText mais je n'arrive pas à récupérer l'identifiant du controle qui me permettrait d'avoir le texte correspondant. en fait le next ne marche pas, il reste bloquer sur l'identifiant du bouton. while(j<20) { lhwnd_control = GetNextDlgGroupItem( hwnd, // handle of dialog box lhwnd_control1, // handle of control FALSE // direction flag ); if (lhwnd_control != NULL) { i= GetDlgCtrlID( hwnd_control // handle of control ); GetDlgItemText( hwnd , // handle of dialog box i,//IDC_EDIT, //int nIDDlgItem, // identifier of control ls_texte, // address of buffer for text 255 // maximum size of string ); } lhwnd_control1 = lhwnd_control; lhwnd_control = NULL; j++; } g fait une boucle de 20 pour voir la progression du next Merci
|
|
mardi 7 décembre 2004 à 16:33:37 |
Re : recuperation du texte d'une boite de dialogue

mezlan
|
Bonjour,
Pour récupérer l'identifiant suivant il faut utiliser : GetWindow(GW_HWNDNEXT).
Voici la fonction Avancer qui peut répondre à tes attentes et un exemple d'utilisation:
Déclarer comme variable membre : CWnd* m_pWndCourant ;
ensuite si tu veux tester sur 20 élément de ta boite de dialogue: int j=0; m_pWndCourant = NULL; while(j<20) { Avancer(m_pWndCourant); j++ }
//La fonction Avancer permet de récupérer le texte des éléments d'une boite de dialogue dans l'ordre du TabOrder. void Avancer(CWnd *pWndCtl) { int index; CString strTexte; if(pWndCtl == NULL) { m_pWndCourant = GetNextDlgGroupItem(pWndCtl,FALSE); index = m_pWndCourant->GetDlgCtrlID(); GetDlgItemText(index,strTexte); TRACE(_T("Texte[%d]:%s\n"),index,strTexte); } if(pWndCtl != NULL){ m_pWndCourant = pWndCtl->GetWindow(GW_HWNDNEXT); index = m_pWndCourant->GetDlgCtrlID(); GetDlgItemText(index,strTexte); TRACE(_T("Texte[%d]:%s\n"),index,strTexte); } } Mezlan
|
|
mardi 7 décembre 2004 à 18:02:28 |
Re : recuperation du texte d'une boite de dialogue
|
mercredi 8 décembre 2004 à 09:32:02 |
Re : recuperation du texte d'une boite de dialogue

demar016
|
Ca marche pas, la methode GetWindow ne me fait pas passer sur un autre controle
|
|
mercredi 8 décembre 2004 à 11:13:22 |
Re : recuperation du texte d'une boite de dialogue

mezlan
|
Ce code marche pour mes boites de dilogues:
CWnd* lhwnd_control; CWnd* lhwnd_control1 = NULL; int j=0; int i; char ls_texte[64]; while(j<20) { if (lhwnd_control1 == NULL){ lhwnd_control = GetNextDlgGroupItem(lhwnd_control1, FALSE ); if (lhwnd_control != NULL) { i= lhwnd_control->GetDlgCtrlID(); GetDlgItemText(i, ls_texte, 255 ); TRACE("Texte[%d]:%s\n",i,ls_texte); } } else{ lhwnd_control = lhwnd_control1->GetWindow(GW_HWNDNEXT); i= lhwnd_control->GetDlgCtrlID(); GetDlgItemText(i, ls_texte, 255 ); TRACE("Texte[%d]:%s\n",i,ls_texte); } lhwnd_control1 = lhwnd_control; lhwnd_control = NULL; j++; } Qu'est ce que tu récupères exactement? un premier texte, rien du tout? T'as une erreur? Les ressources de ta boite de dialogues sont elles OK?
Mezlan
|
|
mercredi 8 décembre 2004 à 11:43:29 |
Re : recuperation du texte d'une boite de dialogue

demar016
|
Moi je n'utilise pas la classe CWnd mais HWND, en fait je recupere le HWND de la dialogue box, mais le GetWindow ne marche pas correctement, je trouve juste mon bouton OK, et je n'arrive pas à obtenir un autre controle pour avoir le texte.
voici le code que j'utilise: while(j<20) { if(lhwnd_control == NULL) { lhwnd_control = GetNextDlgGroupItem(hwnd,lhwnd_control,FALSE); index = GetDlgCtrlID(lhwnd_control); GetDlgItemText(hwnd,index,strTexte,255); TRACE(_T("Texte[%d]:%s\n"),index,strTexte); } if(lhwnd_control != NULL) { lhwnd_control = GetWindow(hwnd,GW_HWNDNEXT); lhwnd_control = GetNextDlgGroupIte(hwnd,lhwnd_control,TRUE); index = GetDlgCtrlID(lhwnd_control); GetDlgItemText(hwnd,index,strTexte,255); TRACE(_T("Texte[%d]:%s\n"),index,strTexte); } j++; }
|
|
mercredi 8 décembre 2004 à 11:59:04 |
Re : recuperation du texte d'une boite de dialogue

demar016
|
OK, je viens de modifier mon code en fonction de ton dernier message. G enfin reussit à recuperer mon texte.
voici le code avec un HWND
int j=0; int index; //CString strTexte; char strTexte[255]; while(j<20) { if(lhwnd_control1 == NULL) { lhwnd_control = GetNextDlgGroupItem(hwnd,lhwnd_control1,FALSE); index = GetDlgCtrlID(lhwnd_control); GetDlgItemText(hwnd,index,strTexte,255); TRACE(_T("Texte[%d]:%s\n"),index,strTexte); } else { lhwnd_control = GetWindow(lhwnd_control1,GW_HWNDNEXT); index = GetDlgCtrlID(lhwnd_control); GetDlgItemText(hwnd,index,strTexte,255); TRACE(_T("Texte[%d]:%s\n"),index,strTexte); } lhwnd_control1 = lhwnd_control; lhwnd_control = NULL; j++; }
par contre comment savoir quand s'arreter pour eviter une boucle aleatoire comme je fait en ce moment
Merci pour ton aide
|
|
mercredi 8 décembre 2004 à 12:40:12 |
Re : recuperation du texte d'une boite de dialogue

mezlan
|
Dans la boite de dialogue les contrôles sont numérotées de 1 à x par le taborder. Dans mon exemple c'est le bouton CANCEL avec l'ID = IDCANCEL qui est le dernier élément de ma boite de dialogue.
int index; char strTexte[255]; while(index != IDCANCEL) { if(lhwnd_control1 == NULL) { lhwnd_control = GetNextDlgGroupItem(hwnd,lhwnd_control1,FALSE); index = GetDlgCtrlID(lhwnd_control); GetDlgItemText(hwnd,index,strTexte,255); } else { lhwnd_control = GetWindow(lhwnd_control1,GW_HWNDNEXT); index = GetDlgCtrlID(lhwnd_control); GetDlgItemText(hwnd,index,strTexte,255);
} lhwnd_control1 = lhwnd_control; lhwnd_control = NULL; j++; }
Si ce code doit être valable pour plusieurs boîtes de dialogue il faut faire en sorte que le même contôle soit le dernier(dans l'ordre du taborder). Peut importe le nombre de contrôles de chaque boites de dialogue.
Ce n'est qu'une astuce, je ne sais pas si cela te conviendras.
Mezlan
|
|
mercredi 8 décembre 2004 à 13:18:25 |
Re : recuperation du texte d'une boite de dialogue
|
Cette discussion est classée dans : texte, control, handle, of, lhwnd
Répondre à ce message
Sujets en rapport avec ce message
Ecrire du texte [ par angsthase ]
Salut à tous Je voudrais créer un fichier texte et y ecrire quelquechose dedans, mais je n'y arrive pas. Le fichier ce créer bien, mais il n'y a rien
control personalisé [ par kev03 ]
bonjour,je souhaite créer une sorte de tableau. Les elements de la première colonne sont chacun une serie de nom et ceux de la deuxieme colonne chacun
le handle d'un control static? [ par blackwizzard ]
comment connaitre le handle ou HWND d'une zone "Static" contenant une image en mode fenetré?merci d'avance!
[C win32] Comment changer le texte d'un control static [ par Zestyr ]
Bonjours, Comment changer le label ou la value (je sais pas vraiment comment ça s'appelle) d'un control STATIC pour le rendre dynamique. Merci de vo
SHELL EXECUTE ET HANDLE [ par nike547 ]
Bonjour, j'ai besoin de votre aide... En fait j'ouvre une application à partir de mon programme avec la fonction ShellExecute() mais je n'arrive pas à
Statistiques sur un fichier texte - Programmation C [ par lakreem ]
Je veux un programme qui détermine dans un fichier texte donné: - le nombre de caractères qu'il contient, - le nombre de chacune des lettres de l'al
codage d'un fichier texte avec c++ [ par mame06 ]
salut tout le monde voilà je dois crypter et décrypter un fichier texte en c++ et mon grand probleme c'est que je suis débutante en c++. alors j'ai d
Recuperer texte dans une fenetre active [ par iba7t ]
Bonjour, je veux developper un programme en c++ qui me permet de recuperer les champs texte présents dans une fenetre active, independament du program
Récupèrer Handle de fenetre [ par LaTatadu91 ]
Bonjour, J'ai un problème avec cette fonction [code=cpp]HWND hWnd = FindWindow(0, "Server Config");[/code] qui est pourtant censée me renvoyer un Han
Empécher redimentionement colonne List Control [ par jerem3000 ]
Bonjour, Je suis en train de développez une petite application dedans il y a une List Control, il y a 3 colonnes et j'aimerais quels ne puisse pas êt
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|