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 :

[MFC] Progress Bar - comment on fait?


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut [MFC] Progress Bar - comment on fait?
    Bonjour,

    Je travail sur un logiciel de traitement d'image et lorsque le traitement s'effectue, j'ai un petit temps d'attente et on ne sait pas vraiment quand le traitement est terminé.

    J'aimerai y intégrer une bar de progression qui safficherait dans une nouvelle fenetre.

    J'ai essayé le code sur le forum à ce liens:

    http://www.developpez.net/forums/viewtopic.php?t=85377

    Mais j'obtiens une erreur qui dit :
    error c2065: 'IDC_PROGRESS': identificateur non déclaré
    Pourrai-ton m'expliquer les différentes étapes pour obtenir cette barre qui est juste visuelle et permettra de patienter pendant que les traitements s'effectuent en parallèle.

    La progression de la barre n'est pas obligatoirement dépendante du temps de traitement, tant qu'on peut savoir que le traitement est terminé et que l'on obtienne quelque chose d'agréable à voir. Mais j'aimerais rester sur le type barre de progression (car je ne l'ai jamais fais!!)

    merci pour vos futurs suggestions.

  2. #2
    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
    salut,
    nouvelle fenetre ? une dialogue par exemple ?
    dans ce cas dans l'editeur de ressources pose ton progress control
    attache une variable dessus .
    c'est tout.
    apres tu utilises les differentes methodes du progress pour fixer sa plage et sa position au fur et a mesure du traitement.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    Donc si j'ai bien compris,

    Je crée une new fenêtre type dialogBar avec la progress bar de la toolbox et je lui assigne une variable membre de type CProgressCtrl, et je l'instancie dans mon code là ou j'ai besoin de la faire apparaitre?

    Mais pour gérer l'état d'avancement, il ne faut pas un timer ou alors coder avec des threads?

    Je suis désoler de t'ennuyer avec ça, mais si tu as des infos assez détaillés sur comment on fais une vrai belle bar de progression (liens, tutos) en MFC (vc++2003), je t'en serai super reconnaissant.

    merci pour ton aide,

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    yo,

    je n'ai jamais utilisé de progress, mais en regardant la doc ça n'a pas l'air bien compliqué. tu utilises SetRange pour fixer le nombre total de "step" (les pitites cases de progression). ensuite tu incrémentes l'avancée de la barre aux points clés dans ton code (SetPos, StepIt, SetStep pour régler l'incrément...).

    regarder la doc d'un contrôle avant de poster

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    merci bigboomshakala,

    Mais avant de poster j'avais bien vue tous ça mais je m'attendais à des trucs un peu plus poussés, un exemple avec des threads , une progress bar qui fais plusieur cycle indépendement du temps de traitement, la possibilité de modifier des paramètres comme la couleur des incréments la forme des la progress bar.

    J'ai vue des exemples sur le net qui sont assez sympas, mais pas utilisable à mon niveau (et en MFC). Je m'attendais à des explication pour progresser dans mon apprentissage de la programmation, pas un 'regarde la doc d'un contrôle avant de poster!!'

    J'aimerai juste qu'on échange des expériences sur le sujet même si une simple progress bar est un sujet basic, vue et revu, mais qui évolue avec les versions de compilateurs actuels, c le but d'un forum non?

    ni voit pas une attaque personnel et merci infiniment pour ton intervention.

  6. #6
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    j'ai répondu à la question "comment utiliser une progress bar traditionnel".
    maintenant si tu veux une progress personnalisée (nouveau design, etc...) il faut créer un nouveau contrôle (hérité de CProgressMachin, ou pas si tu veux tout reprendre)

    là c'est un tout autre problème

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    Ok, j'ai pas été vraiment très clair... dsl

    En fait, ma bar de progression peut être classique, mais j'aimerai un peu m'étendre sur le sujet et savoir se qui est faisable.

    Qu'elle sont les différentes méthodes de gestion de l'avancement de la bar de progression?

    J'aimerai faire un truc du genre une classe dérivé bar de progression qui serai réutilisable dans toutes mes applications future, et qui sera modifiable et évolutive à souhait (cuit en 5 min, ...mmh!! faite pas gaffe!!).

    J'ai pas vraiment le niveau, et j'essayait de réutiliser et de comprendre le liens suivant:

    http://www.developpez.net/forums/viewtopic.php?t=85377

    Mais c'était pas gagné...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    au passage,

    Une fois que la progresse bar est implémenté sur ma boite de dialogue, je coche 'visible=false' initialement.

    comment je fais pour changer seulement le mode visible ou invisible, le seul truc que j'ai trouvé c'est create, mais ça implique que ma progress bar que j'ai crée ne sert plus à rien vue que l'on en crée une autre.

    une idée?

    merci

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Avril 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2005
    Messages : 87
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m_progressBar.ShowWindow(SW_SHOWNORMAL); // pour l'afficher
    m_progressBar.ShowWindow(SW_HIDE); //pour la cacher
    c'est dans la FAQ : http://c.developpez.com/faq/vc/?page=CWnd#ShowWindow

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    merci,

    mais ça ne marche pas.

    Je l'avais vu (sans vouloir passer pour un je-c-tout, j'ai quand même cherché une solution!!), mais moi j'ai lu 'Comment cacher / faire apparaître une fenêtre ?' -> je veut pas cacher une fenetre mais trouver la commande qui me permettra de mettre WS_DISABLED pour l'apparence de ma progress bar, bien essayé.

    En tout cas merci quand même de m'aider à résoudre ce problème.
    Si tu as une autre suggestion, tu es le bienvenue.

    merci

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Avril 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2005
    Messages : 87
    Par défaut
    OK ShowWindow est une méthode de CWnd, mais CProgressCtrl hérite de CWnd. donc c'est applicable à une progress bar.
    Citation Envoyé par Rafoo
    mais ça ne marche pas.
    tu as une erreur de compil, d'éxécution ? Si oui, montre nous ton code.
    Si tu n'as pas encore essayé, fais le car le code que je t'ai mis vient d'un de mes programmes et fonctionne

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Par défaut
    tien voila un lien ça peut peut être t'aider :
    http://chgi.developpez.com/windows/comctrl32/


  13. #13
    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
    salut,
    on reprend un peu:
    pour donner des reponses il faut que tu specifies l'interface que tu veux avoir.
    tu veux mettre a jour un progress control a partir d'un thread ?
    pas de probleme.
    tu crees une boite de dialogue popup tu met ton progress control dedans.
    tu initialises ta boite de dialogue comme:
    http://c.developpez.com/faq/vc/?page...gPostNcDestroy
    tu passes ensuite le pointeur de cette fenetre a ton thread.
    et tu utilises la fonction SetPos pour fixer l'emplacement du curseur et SetRange pour la plage.


  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 135
    Par défaut
    Bon, j'ai réussi à faire ce que je voulais avec la méthode classique.

    Merci à tous pour vos conseil, vous êtes sympas de donner de votre temps pour nous aider nous pauvre développeur débutant...

    Merci farscape pour tes info sur la façon dont je doit crée ma Cdlg pour la passé en thread.

    Bonne soirée à tous et a+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] progress bar
    Par tyarcaouen dans le forum MFC
    Réponses: 2
    Dernier message: 14/04/2006, 12h40
  2. [MFC] Progress Bar dans un CButton
    Par Aymerik dans le forum MFC
    Réponses: 4
    Dernier message: 03/04/2006, 16h39
  3. Comment afficher une popup contenant un progress bar ?
    Par jlassira dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/03/2006, 17h49
  4. [MFC] Utilisation d'une progress bar
    Par nmarf dans le forum MFC
    Réponses: 2
    Dernier message: 12/09/2005, 10h42
  5. [MFC]Changer la couleur d'un progress bar
    Par Deedier dans le forum MFC
    Réponses: 1
    Dernier message: 21/04/2005, 18h39

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