IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Progress bar problème


Sujet :

MFC

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut Progress bar problème
    Bonjour,
    J'ai des problèmes avec les barres de progression (parce que je suis encore au niveau débutant :p). J'ai cherché à afficher une barre de progression dans une boite de dialogue, cette barre progresse toute seule une fois qu'on clicker sur le bouton OK. Et on arrete tous si on clicke sur Cancel
    Je m'expique : je suis en train d'ajouter des fonctionnalités dans un logiciel qui est developpé avec MFC visual c++ 6.0, une fonctionnalité parmi d'autre est de traiter un fichier texte (tres gros), transformer les informations récupérées depuis ce fichier et les enregistrer dans les fichiers de petit taille avec un format spécifique et ainsi ranger ces nouveaux fichiers dans différents répertoires. Etant donné la durée (tres longue) du traitement (10 minutes, meme plus des fois), j'aimerais ajouter une boite de dialogue contenant une barre de progression pour connaitre l'avancement du traitement. A partir du gros fichier texte, je lis ligne par ligne et je fais la transformation et le rangement. (Une petite détaille: le traitement va créer environ 80 répertoires et chaque répertoire contient environ 150 fichiers de taille variable de 10 à 50 ko).
    J'ai pas mal cherché sur le net, et j'ai étudié aussi pas mal d'exemple mais j'arrive toujours pas faire fonctionner cette boite dialogue (et cette barre de progression).
    J'ai ajouté une belle boite de dialogue avec MFC avec une barre de progression, j'ai ajouté aussi des variables membres propement. Ensuite, j'ai ajouté une classe dérivé de CProgressCrtl comme dans l'exemple GradientProgress.
    Dans la fonction qui permet d'effectuer le traitement, j'ai instancié une boite de dialogue contenant la barre de progression (de nouvelle class), et dans le boucle qui permet de lire ligne par ligne, apres chaque traitement de chaque ligne, je fais un STEPIT et un SETPOS comme dans l'exemple. Hélas, rien qui marche
    la boite de dialogue n'apparait meme pas !!!
    J'ai lu quelque part : il faut ajouter un thread ou encore utiliser Timer, mais je comprends rien de tout ça
    Si qq peut m'aider, ce sera un grand secours.
    Merci d'avance.

    Voici un bout de code.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Par défaut
    Salut,
    Je n'ai pas regardé ton code mais effectivement si tu es dans une boucle de lecture tu dois demander à Windows de rafraichir tes fenètres de temps en temps. Differentes possibilités existent; une très simple dans ton cas serait de rajouter un appel toute les x lignes lues à la fonction PumpMessage() voir
    http://c.developpez.com/faq/vc/?page...rk#PumpMessage

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut
    J'ai essayé de mettre des PumpMessage()
    Mais ça marche toujours pas

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    ce que tu as fait ne risque pas de fonctionner..
    une boîte de dialogue modal n'existe plus apres DoModal (CDlgProgress).
    pour faire ce que tu demandes tu dois creer ta dialogue non modale.
    voir faq:
    http://c.developpez.com/faq/vc/?page...CreateModeless
    et appeler pumpmessage dans ta boucle à plusieurs endroit ..

Discussions similaires

  1. Problème PROGRESS BAR
    Par Nocturn dans le forum Flash
    Réponses: 2
    Dernier message: 21/03/2010, 18h02
  2. Problème actualisation progress bar
    Par saket2114 dans le forum EDT/SwingWorker
    Réponses: 4
    Dernier message: 29/10/2009, 18h42
  3. Réponses: 10
    Dernier message: 21/04/2008, 12h48
  4. probléme du composant progress bar
    Par ouadie99 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/03/2008, 14h43
  5. [Patterns]Séparation IHM <-> Noyau : Problême de progress bar ?
    Par Muetdhiver dans le forum Design Patterns
    Réponses: 8
    Dernier message: 18/09/2007, 22h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo