Barre de progression [Résolu]

Signaler
Messages postés
37
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
13 avril 2006
-
ricky78
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006
-
Voilà je lance une acquisition (via une laison série) de courbes et j'aimerais que le temps que les courbes se chargent, avoir une barre de progression à l'écran...
Le problème est que malgré la MSDN, je n'arrive pas à l'implémenter dans mon projet, si quelqu'un peut me renseigner...

D'avance merci
A voir également:

10 réponses

Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006

il faut que tu passe des Entiers entre 0 et 100, la ton N est un flottant.
Regarde de ce cotè là.

Si tu as une boucle normé par ton nbc et que nbc est un entier tu peux utiliser


DlgIni.m_Progress.SetRange(0,nbc);

DlgIni.m_Progress.SetPos(i); // avec i compteur dans ta boucle

Cordialement

TOCHE
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ca n'a peut être rien a voir, mais pour utiliser une barre de progression tu doit utiliser InitCommonControls().
A quel niveau se situe exactement le problème?
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006

Tu codes en quoi ?

TOCHE
Messages postés
37
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
13 avril 2006

je code en visual C++ et j aimerais afficher une barre de loading (de progression) le temps d'une fonction
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006

Bonjour

Tu vas dans les ressources et tu dessine ta barre dans ta fenetre nommé normalement de base (IDC_PROGRESS1).
Tu lance class wizzard onglet member variable et tu ajoute une variable de type control à ta progress bar (nommé m_prog par exemple)

Pour sa gestion, ceque je trouve le + simple et de lui affecter un range de 0 à 100 par la commande

m_prog.SetRange(0,100);

Pour lui donner un etat d'avancement tu utilise

m_prog.SetPos(50); // pour 50%

Il sufit dans ta boucle de creer un ENTIER N dependant d'un nombre d'iteration ou du temps, de la normé par rapport à 100% et d'utiliser
m_prog.SetPos(N); // pour N% dans ta fonction

Cordialement

TOCHE
Messages postés
37
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
13 avril 2006

ok mais a quel moment je fais appel a la boite?
avant la fonction? pendant?
Messages postés
37
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
13 avril 2006

en fait ca plante et on a un 'debug assertion failed'

voila comment je fais:


DlgIni.m_Progress.SetRange(0,100);



//DlgIni.m_Progress.SetPos(0);



float N = nbc/100, i=1;



while( i <= 100 )


{


DlgIni.m_Progress.SetPos(i * N);


i++;


}
Messages postés
37
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
13 avril 2006

CConfiguration DlgIni; // boite dialogue contenant la progress barre
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006

SetPos doit etre dans ta fonction ou tu veux l'avancement du progress. Tu dois utiliser une des boucles dans ta fonction ou implanter ta tache dans le while si elle n'est pas normé.

TOCHE
Messages postés
37
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
13 avril 2006

ok c bien ce que j ai fait TOCHE

mais qd je lance mon acquisition,
j ai droit encore a un plantage ('debug assertion failed') à quoi ca peut etre du?

j ai mis des points d arrets sur SetRange etc car apparemment c est a cause d eux... (?)

peut etre que je les utilise mal?