Bonjour,
Je code actuellement sous Visual C++ 6 (SP6 pour le détail) un programme
qui traite des fichiers les uns après les autres, de manière assez rapide.
J'affiche l'avancement de ce traitement pour faire patienter
l'utilisateur (car sur 40 000 fichiers ca dure longtemps) mais cet
affichage est instable.
En effet, une classe recoit une référence sur la boite de dialogue
d'attente (qui, qu'elle soit ouverte en modale ou non ne change rien) et
mets à jours des informations de cette boite, et fait un
UpdateData(FALSE); pour mettre à jours ces informations.
Cela donne un code du genre :
bool CBD::Traitement(const char*, CDialog& d) {
[...]
d.info = ...;
d.UpdateData(FALSE);
[...]
}
Or dès que ma fenetre perd le focus ou que je tente de la bouger, plus
rien et elle n'est plus mise à jours. Avez vous une solution pour régler
ce problème ?
J'ai tenté avec des RedrawWindow() et des UpdateWindow() mais ca ne
change rien.
Autre petite chose j'ai lu dans les archives de ce forum la réponse à
l'une de mes questions qui était trouver le nombre de fichiers dans un
répertoire. Cela reste toujours impossible mis à part FindFirst()
FindNext() qui seraient inadmissibles dans mon cas ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anthony
Anthony wrote:
Bonjour, Je code actuellement sous Visual C++ 6 (SP6 pour le détail) un programme qui traite des fichiers les uns après les autres, de manière assez rapide. J'affiche l'avancement de ce traitement pour faire patienter l'utilisateur (car sur 40 000 fichiers ca dure longtemps) mais cet affichage est instable.
En effet, une classe recoit une référence sur la boite de dialogue d'attente (qui, qu'elle soit ouverte en modale ou non ne change rien) et mets à jours des informations de cette boite, et fait un UpdateData(FALSE); pour mettre à jours ces informations. Cela donne un code du genre :
bool CBD::Traitement(const char*, CDialog& d) { [...] d.info = ...; d.UpdateData(FALSE); [...] } Or dès que ma fenetre perd le focus ou que je tente de la bouger, plus rien et elle n'est plus mise à jours. Avez vous une solution pour régler ce problème ? J'ai tenté avec des RedrawWindow() et des UpdateWindow() mais ca ne change rien.
Autre petite chose j'ai lu dans les archives de ce forum la réponse à l'une de mes questions qui était trouver le nombre de fichiers dans un répertoire. Cela reste toujours impossible mis à part FindFirst() FindNext() qui seraient inadmissibles dans mon cas ?
Merci d'avance
Oops, je viens de voir que deux threads répondaient à ma question je pense, je vais tester... désolé thunderbird est vraiment peu pratique pour lire les news.
Anthony -- It's a bird.. It's a plane.. No, it's KernelMan, faster than a speeding bullet, to your rescue. Doing new kernel versions in under 5 seconds flat.. -- Linus, in the announcement for 1.3.27
Anthony wrote:
Bonjour,
Je code actuellement sous Visual C++ 6 (SP6 pour le détail) un programme
qui traite des fichiers les uns après les autres, de manière assez rapide.
J'affiche l'avancement de ce traitement pour faire patienter
l'utilisateur (car sur 40 000 fichiers ca dure longtemps) mais cet
affichage est instable.
En effet, une classe recoit une référence sur la boite de dialogue
d'attente (qui, qu'elle soit ouverte en modale ou non ne change rien) et
mets à jours des informations de cette boite, et fait un
UpdateData(FALSE); pour mettre à jours ces informations.
Cela donne un code du genre :
bool CBD::Traitement(const char*, CDialog& d) {
[...]
d.info = ...;
d.UpdateData(FALSE);
[...]
}
Or dès que ma fenetre perd le focus ou que je tente de la bouger, plus
rien et elle n'est plus mise à jours. Avez vous une solution pour régler
ce problème ?
J'ai tenté avec des RedrawWindow() et des UpdateWindow() mais ca ne
change rien.
Autre petite chose j'ai lu dans les archives de ce forum la réponse à
l'une de mes questions qui était trouver le nombre de fichiers dans un
répertoire. Cela reste toujours impossible mis à part FindFirst()
FindNext() qui seraient inadmissibles dans mon cas ?
Merci d'avance
Oops, je viens de voir que deux threads répondaient à ma question je pense,
je vais tester... désolé thunderbird est vraiment peu pratique pour lire
les news.
Anthony
--
It's a bird.. It's a plane..
No, it's KernelMan, faster than a speeding bullet, to your rescue.
Doing new kernel versions in under 5 seconds flat..
-- Linus, in the announcement for 1.3.27
Bonjour, Je code actuellement sous Visual C++ 6 (SP6 pour le détail) un programme qui traite des fichiers les uns après les autres, de manière assez rapide. J'affiche l'avancement de ce traitement pour faire patienter l'utilisateur (car sur 40 000 fichiers ca dure longtemps) mais cet affichage est instable.
En effet, une classe recoit une référence sur la boite de dialogue d'attente (qui, qu'elle soit ouverte en modale ou non ne change rien) et mets à jours des informations de cette boite, et fait un UpdateData(FALSE); pour mettre à jours ces informations. Cela donne un code du genre :
bool CBD::Traitement(const char*, CDialog& d) { [...] d.info = ...; d.UpdateData(FALSE); [...] } Or dès que ma fenetre perd le focus ou que je tente de la bouger, plus rien et elle n'est plus mise à jours. Avez vous une solution pour régler ce problème ? J'ai tenté avec des RedrawWindow() et des UpdateWindow() mais ca ne change rien.
Autre petite chose j'ai lu dans les archives de ce forum la réponse à l'une de mes questions qui était trouver le nombre de fichiers dans un répertoire. Cela reste toujours impossible mis à part FindFirst() FindNext() qui seraient inadmissibles dans mon cas ?
Merci d'avance
Oops, je viens de voir que deux threads répondaient à ma question je pense, je vais tester... désolé thunderbird est vraiment peu pratique pour lire les news.
Anthony -- It's a bird.. It's a plane.. No, it's KernelMan, faster than a speeding bullet, to your rescue. Doing new kernel versions in under 5 seconds flat.. -- Linus, in the announcement for 1.3.27
Anthony
Anthony wrote:
Bonjour,
[...] Désolé en lisant un peu le groupe je viens de voir que deux threads répondaient à ma question. Thunderbird étant peu pratique pour les news je ne les avais pas vu...
Anthony -- It's a bird.. It's a plane.. No, it's KernelMan, faster than a speeding bullet, to your rescue. Doing new kernel versions in under 5 seconds flat.. -- Linus, in the announcement for 1.3.27
Anthony wrote:
Bonjour,
[...]
Désolé en lisant un peu le groupe je viens de voir que deux threads
répondaient à ma question. Thunderbird étant peu pratique pour les news je
ne les avais pas vu...
Anthony
--
It's a bird.. It's a plane..
No, it's KernelMan, faster than a speeding bullet, to your rescue.
Doing new kernel versions in under 5 seconds flat..
-- Linus, in the announcement for 1.3.27
[...] Désolé en lisant un peu le groupe je viens de voir que deux threads répondaient à ma question. Thunderbird étant peu pratique pour les news je ne les avais pas vu...
Anthony -- It's a bird.. It's a plane.. No, it's KernelMan, faster than a speeding bullet, to your rescue. Doing new kernel versions in under 5 seconds flat.. -- Linus, in the announcement for 1.3.27