Bonjour, bon dimanche !

j'ai un petit souci dont j'aimerais vous faire part...
je fais un petit soft de copie de fichiers qui utilise CopyFileEx et
une fonction pour le suivi de la copie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
  DWORD ret = PROGRESS_CONTINUE;
 
  CMyCopyFileDlg* ptr = (CMyCopyFileDlg*)lpData;
 
  // On calcule un pourcentage pour la progression du fichier
  DWORD percent = (TotalBytesTransferred.QuadPart * 100) / TotalFileSize.QuadPart;
  ptr->m_progressFile.SetPos(percent);
 
  DWORD left = TotalFileSize.QuadPart - TotalBytesTransferred.QuadPart;
 
  // On prépare une string avec les données transférées et restantes...
  ptr->m_strAvancementFic.Format("%d bytes copied, left : %d bytes", 
                            TotalBytesTransferred.QuadPart, left);
 
  AfxGetApp()->PumpMessage();
 
  ptr->UpdateData(FALSE);
  if ( ptr->m_annuleCopie == TRUE )
  {
     ret = PROGRESS_CANCEL;
  }
  return ret;
Ca marche très bien .... rafraichissement de la fenêtre garanti ... sauf
que si il n'y a pas de messages (souris qui passe au dessus de la fenêtre....) il ne se passe rien...

dois je faire un InvalidateRect() pour forcer l'envoi de messages, ou une solution meilleure ?