Barre de progression [Résolu]

cs_Pindus 38 Messages postés vendredi 18 mars 2005Date d'inscription 13 avril 2006 Dernière intervention - 27 juin 2005 à 14:48 - Dernière réponse : ricky78 126 Messages postés jeudi 5 juin 2003Date d'inscription 11 juillet 2006 Dernière intervention
- 29 juin 2005 à 08:16
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
Afficher la suite 

10 réponses

Répondre au sujet
ricky78 126 Messages postés jeudi 5 juin 2003Date d'inscription 11 juillet 2006 Dernière intervention - 29 juin 2005 à 08:16
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ricky78
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 27 juin 2005 à 15:10
+1
Utile
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?
Commenter la réponse de vecchio56
ricky78 126 Messages postés jeudi 5 juin 2003Date d'inscription 11 juillet 2006 Dernière intervention - 27 juin 2005 à 15:02
0
Utile
Tu codes en quoi ?

TOCHE
Commenter la réponse de ricky78
cs_Pindus 38 Messages postés vendredi 18 mars 2005Date d'inscription 13 avril 2006 Dernière intervention - 28 juin 2005 à 09:18
0
Utile
je code en visual C++ et j aimerais afficher une barre de loading (de progression) le temps d'une fonction
Commenter la réponse de cs_Pindus
ricky78 126 Messages postés jeudi 5 juin 2003Date d'inscription 11 juillet 2006 Dernière intervention - 28 juin 2005 à 10:34
0
Utile
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
Commenter la réponse de ricky78
cs_Pindus 38 Messages postés vendredi 18 mars 2005Date d'inscription 13 avril 2006 Dernière intervention - 28 juin 2005 à 12:47
0
Utile
ok mais a quel moment je fais appel a la boite?
avant la fonction? pendant?
Commenter la réponse de cs_Pindus
cs_Pindus 38 Messages postés vendredi 18 mars 2005Date d'inscription 13 avril 2006 Dernière intervention - 28 juin 2005 à 12:59
0
Utile
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++;


}
Commenter la réponse de cs_Pindus
cs_Pindus 38 Messages postés vendredi 18 mars 2005Date d'inscription 13 avril 2006 Dernière intervention - 28 juin 2005 à 13:01
0
Utile
CConfiguration DlgIni; // boite dialogue contenant la progress barre
Commenter la réponse de cs_Pindus
ricky78 126 Messages postés jeudi 5 juin 2003Date d'inscription 11 juillet 2006 Dernière intervention - 28 juin 2005 à 14:17
0
Utile
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
Commenter la réponse de ricky78
cs_Pindus 38 Messages postés vendredi 18 mars 2005Date d'inscription 13 avril 2006 Dernière intervention - 28 juin 2005 à 16:16
0
Utile
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?
Commenter la réponse de cs_Pindus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.