Problème de GetDlgItem dans un thread

Résolu
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020 - 6 avril 2007 à 15:27
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020 - 14 avril 2007 à 19:08
Bonjour à tous !

Je développe actuellement une petite appli MFC avec visual studio 6.
J'ai créer un thread qui fonctionne très bien.
Dans ce thread, j'aimerais pouvoir récupérer une valeur saisie dans un editBox ( le programme est en fait, un serveur, et en l'occurence, ma valeure à récupérer est le numéro de port).

Je fais donc appel a GetDlgItem afin de récupérer ma valeur, et la, ca ne fonctionne pas, j'ai une erreure à la compilation me disant :

CWnd::GetDlgItem' : illegal call of non-static member function

Je vous montre le petit code de mon thread :

UINT CTEST_SERVEURSDlg::ThreadServeur(LPVOID pParam) // Implémentation de mon thread
{
    CString m_strPort;
    int m_nPort;
 
    CEdit * pEdit = (CEdit *)GetDlgItem(IDC_EDIT_PORT);
    pEdit->GetWindowText(m_strPort);
    m_nPort=atoi(m_strPort); // conversion du numéro de port (CString) en entier ( int)
    serveur *MonServeur= new serveur(m_nPort); // Appel au constructeur, création du socket
   return 0;


}

Merci  à tous pour votre attention !

Bonne soirée

13 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 avril 2007 à 18:05
Passe la valeur dans pParam, semble inutilisé.

ciao...
BruNews, MVP VC++
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
6 avril 2007 à 19:53
HWND hEdit;
hEdit = GetDlgItem(IDC_EDIT_PORT);

Shell
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
6 avril 2007 à 17:21
2 solutions:
- utiliser les sections critiques
- utiliser la synchronisation

Cf MSDN

Shell
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
6 avril 2007 à 17:25
Oups dsl j'ai mal lu ton probleme.
Cette solution est néamoins plus propre et plus sure pour tout ce qui est gestion des composants graphique dans les threads.

Shell
0

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

Posez votre question
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
6 avril 2007 à 18:02
:\

Et simplement ya pas un autre moyen?
0
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
6 avril 2007 à 19:07
Oui, mais j'aurais souhaité que mon GetDlgItem afin de récupérer la valeur de ma éditbox soit fais dans ce thread, comme ce thread est déclenché lors d'un appuis bouton.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 avril 2007 à 19:16
Alors passe le hwnd du edit.

ciao...
BruNews, MVP VC++
0
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
6 avril 2007 à 19:44
Ok, donc tu me conseilles de passer le handle du edit en argument pour pParam
Et mon GetDlgItem, que deviens -il?

Je m'excuse de ma question de noob, mais je suis pas très alaise avec tout ca !!

merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 avril 2007 à 19:55
char buf[12];
::GetWindowText(hedit, buf, 12);
et atoi() pour finir.

ciao...
BruNews, MVP VC++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
6 avril 2007 à 20:07
Merci brunews pour le complément ^^

Shell
0
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
6 avril 2007 à 20:26
Merci vraiment à tous !!

Je fini ma coupe de champ', et j'essay :)
0
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
6 avril 2007 à 21:42
Je ne vois pas, en fait, je pense que je déclare mon Hwnd au mauvaise endroit, mais je ne vois pas ou placer le code que vous m'avez donnés, vous pourriez me l'indiquer s'il vous plais?

Je suis conscient que je devient lourd sur ce post, mais la je floppe :(

Merci à tous
0
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
14 avril 2007 à 19:08
Merci  a tous, je viens de trouver, j'ai donc utilisé pParam, merci a tous :)
0
Rejoignez-nous