UpdateData dans un thread

Résolu
elroulianito Messages postés 17 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 31 janvier 2009 - 18 nov. 2004 à 15:50
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 20 nov. 2004 à 08:53
Comment faire pour mettre a jour les valeurs des controls d'une boite de dialog depuis un thread?
Par ex si un CEdit affiche une CString m_Msg;
Par quoi dois je remplacer le UpdateData(FALSE);

[blue]void[\blue] RunThread([blue]void[\blue] *lpParam)
{
CMyDlg *pDlg = (CMyDlg *)lpParam;
[blue]int[\blue] counter= 0;
[blue]while[\blue](pDlg->ContinuThread)
{
pDlg->m_Msg.Format("counter = %d",counter);
UpdateData(FALSE);
}
pDlg->hThread=0;
_endthread();
[blue]return[\blue] ;
}

4 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
18 nov. 2004 à 16:19
Il faut associer l'Edit à un contrôle CEdit (par ex m_edt).

Dans le thread, pour modifier le texte à afficher, il faudra appeler les fct d'encapsulation de l'API (celle qui apppele SendMessage), pour affecter/récupérer le texte.

dans ton cas : m_edt.SetWindowText(m_Msg);

UpdateData ne peut pas être appelée dans un thread (provoque un ASSERTION FAILED si je me souvient bien)
3
elroulianito Messages postés 17 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 31 janvier 2009
18 nov. 2004 à 16:32
merci ça marche. Et oui, tu as raison pDlg->UpdateData(false); provocait un ASSERTION FAILED
0
matge Messages postés 25 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 20 novembre 2004
19 nov. 2004 à 21:43
J utilise

SendDlgItemMessage(dlg,IDC_TIMESTAMP,Timestamp, 0, 0 );

mais l affichage n a pas lieu tant que tourne le thread que faire ???
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
20 nov. 2004 à 08:53
au pire,
fait un envoi de msg direct, tu sauras le traiter ds ton appli ...

++
Magic Nono: l'informagicien! 8-)
0
Rejoignez-nous