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] fonction Create d'une ProgressBar


Sujet :

MFC

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut [MFC] fonction Create d'une ProgressBar
    Bonjour à tous,

    J'essai d'afficher une barre de progression mais je n'y arrive pas....
    En fait c'est juste la fonction Create de CDialog qui m'affiche un rapport d'erreur de Microsoft.......

    Voici le code de la fonction :
    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
    BOOL CProgressDlg::Create(CWnd *pParent)
    {
        // Get the true parent of the dialog
        m_pParentWnd = CWnd::GetSafeOwner(pParent);
     
        // m_bParentDisabled is used to re-enable the parent window
        // when the dialog is destroyed. So we don't want to set
        // it to TRUE unless the parent was already enabled.
     
        if((m_pParentWnd!=NULL) && m_pParentWnd->IsWindowEnabled())
        {
          m_pParentWnd->EnableWindow(FALSE);
          m_bParentDisabled = TRUE;
        }
     
        if(!CDialog::Create(CProgressDlg::IDD,pParent))
        {
          ReEnableParent();
          return FALSE;
        }
     
        return TRUE;
    }
    C'est :
    CDialog::Create(CProgressDlg::IDD,pParent)
    qui m'affiche le rapport, j'avoue que je suis coincé !

    Merci d'avance à tous ceux qui se pencheront sur mon problème.
    Bonne continuation......

    Cheper

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Par défaut
    pour faire une progress bar, rien de plus simple!
    Tu l'a creer dans tes ressources en lui precisant un id ("IDC_PROGRESS").
    puis tu la récupère dans ton code avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (CProgressCtrl*) progress = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS);
    après t'a plus qu'à utiliser les fonction associé avec progress->fonctionX

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    Donc j'oublie la fonction Create???
    A la place de la ligne :
    Je met la tienne c'est ça que tu veux dire??

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Par défaut
    la fonction "create", je ne la connais pas. Tout ce que je peux te dire c'est que tu peux initialiser ta progress bar en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    progress->SetRange(0, 100);
    par exemple. ensuite tu n'a plus qu'a modifier sa position quand tu le souhaite avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    progress->SetPos(20);
    par exemple.

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    Oui ca je le fait........
    Mais rien ne se passe, alors j'ai pensé qu'il fallait initialiser la progress bar.....
    Avec Create par exemple, mais ca marche pas......
    Alors je vois pas trop ce que j'oublie ou ce qui va pas......

    Peux-tu me donner le code de tes fonctions pour les comparer aux miennes...(SetRange et SetPos)
    Peut-etre c'est moi qui fait n'importe quoi !!

    Merci pour ta patience......

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Par défaut
    je te les ai donné juste au dessus!

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    Ok, mais c'est le code des fonctions que je te demande......
    Moi j'utilise une classe toute faite.....que j'ai trouvé sur Internet

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    Bon ben j'ai réussi.......
    Merci à toi Joeleclems et bonne continuation !

    Cheper

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Par défaut
    mon code est très long...
    voici les parties qui devraient t'interresser :

    Initialisation de mes deux barres de progression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    _progress_bar = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_DETAIL);
    _progress_bar->SetRange(0, 100);
    _progress_bar_gnl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS);
    _progress_bar_gnl->SetRange(0, 100);
    (_progress_bar et _progress_bar_gnl sont des variables de ma classes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    _progress_bar_gnl->SetPos( (p_nb_total_of_files - p_staying_files) * 100 / p_nb_total_of_files );
    _progress_bar->SetPos( (p_nb_total_of_files - nb_image +1) * 100 / nb_image );
    et c'est tout!
    ce qu'il faut retenir c'est que tu dois mettre à jour la position des progress barre avec SetPos(int)!

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par défaut
    Merci à toi encore tu m'as bien aidé......
    J'ai compris, enfin, coment ça marchait.......
    C'est vrai que c'est pas dur !! (quand on a compris)

    Bonne journée !

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 111
    Par défaut
    Avec plaisir
    Bonne journée à toi aussi et à la prochaine

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/01/2010, 14h48
  2. Réponses: 1
    Dernier message: 14/04/2008, 11h23
  3. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 11h16
  4. Réponses: 29
    Dernier message: 09/02/2006, 17h11
  5. [MFC] Arreter execution d'une fonction
    Par ricky78 dans le forum MFC
    Réponses: 1
    Dernier message: 07/11/2005, 15h52

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