Affichage de ma fenetre qui freeze

tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 - 4 déc. 2008 à 22:51
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 - 5 déc. 2008 à 11:55
Bonsoir, j'ai fait un programme de transfert de fichier, j'ai une barre de progression du téléchargement, mais sur des fichier important (env 20Mo) elle fini par se figer ainsi que toute ma fenêtre.
J'ai fait plusieur essais mais je n'arrive pas à trouver la solution,quelqu'un peut il m'aider?
Merci d'avance,voici le code:

 int position,p=0;//position de la progressbar;
 DWORD bit_lu;
 
  RECT rcWnd;
GetClientRect(Fenetre,&rcWnd);
  
  
 do
 {
  ZeroMemory(tempo,1024);
  ReadFile(Hfichier,tempo,1024,&bit_lu,NULL);
  total_envoye+=send(Transfert,tempo,bit_lu,0);
  position = total_envoye/taille*100;
 
  char t[64];// rajouté pour faire un test de l'affichage
  sprintf(t,"%i",position);
  SetWindowText(Fenetre,t);
 
  p++;
  char tt[64];//idem
  sprintf(tt,"%i",p);
  SetWindowText(Label2,tt);
 
 
  SendMessage(Progressbar,PBM_SETPOS,position,NULL);
InvalidateRect(Fenetre,&rcWnd,false);
  UpdateWindow(Progressbar);
  UpdateWindow(Fenetre);
  SendMessage(Fenetre,WM_PAINT,0,0); 
 }while(total_envoye < taille);
 CloseHandle(Hfichier);  

2 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
5 déc. 2008 à 00:51
Salut,
Mets les opérations de transfert dans un Thread:
http://msdn.microsoft.com/en-us/library/ms682453(VS.85).aspx
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
5 déc. 2008 à 11:55
Ok, c'est une solution que j'envisageais
merci
Rejoignez-nous