List box et thread

cs_seito Messages postés 56 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 24 mai 2006 - 22 avril 2004 à 14:49
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 22 avril 2004 à 16:49
s'il vous plait est ce que quelqu'un sait comment accéder à une LIST BOX à partir d'un thread.
je travaille sous MFC "visual c++ 6.0"

la list box à été créer par l'assistant.

ce que j'aimerais fair c'est qu'un thread s'occupe de recevoir ce que mon serveur lui envoi via socket, et l'afficxhe dans une list box.

merci pour vos réponses

seito

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 avril 2004 à 15:12
Passe le handle de ta lisbox en param au thread.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_seito Messages postés 56 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 24 mai 2006
22 avril 2004 à 15:55
tu peux me donner un exemple je suis nouveau en MFC

merci, pour tes réponses

[fon= Lucidia Console] Seito
/font
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 avril 2004 à 16:01
Et moi j'ai abandonne MFC mais cela ne change rien a l'affaire.
Une func de thread prend un void* en param.
Tu lances ton thread comme avant sauf que tu mets '(void*) hlist' en param.
Dans ta func:
::SendMessage((HWND) pparam, LB_ADDSTRING, 0, (long) psz);
rien que du normal.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_seito Messages postés 56 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 24 mai 2006
22 avril 2004 à 16:35
désolé de t'embéter mais j'ai pas trés bien compris ton exemple
je te met le code que j'ai écris pour que tu puisse le voir

void CClient_chatDlg::OnUserConnexion() 
{
// TODO: Add your command handler code here

sin.sin_addr.s_addr	= inet_addr("192.168.0.51");
sin.sin_family		= AF_INET;
sin.sin_port		= htons(210);
sock = socket(AF_INET,SOCK_STREAM,0);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
hWnd=GetSafeHwnd();
dialogue* dlg=new dialogue();
dlg->DoModal();
DWORD ThreadId;
CreateThread(NULL,NULL,ThreadProc,(void*) 

                hWnd,NULL,&ThreadId);

}

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
CClient_chatDlg *client_chat=new CClient_chatDlg();
char *buff=new char[500];
int i=0;

i=recv(sock,buff,strlen(buff),0);
buff='\0';
i=strcmp(buff,"");
if(i==0) 
{
        ::SendMessage(hWnd,LB_ADDSTRING,
client_chat->m_echange, (long) "tarik");
}

return 0;

}



m_echange c'est le nom de la varaible de type CListCtrl
hWnd est le HWND de la fenétre qui contient la liste control

merci pour vos réponses et désolé :shy)

[[i]Seito
]
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 avril 2004 à 16:49
CreateThread est a bannir avec MFC, tu vas avoir de grosses fuites memoire, aucune assurance que destructeurs seront appeles.
Si tu utilises MFC, faut te servir uniquement de son sabir.
AfxBeginThread est la fonction MFC.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous