Affichage de ma fenetre qui freeze

Signaler
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
-
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
-
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

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