Progress bars [MFC C++]

Progress bars [MFC C++] - C++ - Programmation

Marsh Posté le 07-04-2003 à 17:27:50    

Quelqu'un connait il la manière dont on se sert des progress bars, qui apparement sont hyper simples à utiliser, mais moi j'y arrive pas...
J'ai les trois fonctions :  
CProgressCtrl::SetRange();
CProgressCtrl::SetStep();
CProgressCtrl::StepIt();
 
mais je ne connais pas la syntaxe exacte (je n'ai pas msdn)
voici ce que j'ai fait :  

Code :
  1. //dans la fonction OnInitDialog()
  2. CProgressCtrl *Temp1;
  3. CProgressCtrl *Temp2;
  4. Temp1 = (CProgressCtrl *) GetDlgItem(IDC_ECHTEMP);
  5. Temp2 = (CProgressCtrl *) GetDlgItem(IDC_DFTEMP);
  6. Temp1->SetRange(0,60);
  7. Temp1->SetStep(1);
  8. Temp2->SetRange(0,60);
  9. Temp2->SetStep(1);
  10. //Dans une fonction qui gère le click sur un bouton
  11. int i,j;
  12. int cpt;
  13. i = 25;
  14. j = 30;
  15. CProgressCtrl *Temp1;
  16. CProgressCtrl *Temp2;
  17. Temp1 = (CProgressCtrl *) GetDlgItem(IDC_ECHTEMP);
  18. Temp2 = (CProgressCtrl *) GetDlgItem(IDC_DFTEMP);
  19. /*Temp1->SetRange(-60,0);
  20. Temp1->SetStep(1);
  21. Temp2->SetRange(-60,0);
  22. Temp2->SetStep(1);*/
  23. for (cpt = 0; cpt == i; cpt++)
  24. {
  25.  Temp1->StepIt();
  26. }
  27. for (cpt = 0; cpt == j; cpt++)
  28. {
  29.  Temp2->StepIt();
  30. }


 
 
PS : si jamais c débile, tapez moi [:lorill]
 

Reply

Marsh Posté le 07-04-2003 à 17:27:50   

Reply

Marsh Posté le 07-04-2003 à 17:30:54    

MSDN est dispo en ligne : http://msdn.microsoft.com
 
Sinon t'as CodeProject et CodeGuru qui sont très bien. Par exemple : http://www.codeproject.com/miscctrl/#Progress Controls
 
Edit: les signets avec les espaces, c'est mal :fou:


Message édité par Harkonnen le 07-04-2003 à 17:33:33

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 17:31:33    

[:flclsd]

Reply

Marsh Posté le 07-04-2003 à 17:36:44    

mais pourquoi ca marche pas mon truc ?

Reply

Marsh Posté le 07-04-2003 à 17:37:09    

Citation :

 for (cpt = 0; cpt == i; cpt++)


Qu'est ce que c'est que ces conditions d'arret ? [:mlc]

Reply

Marsh Posté le 07-04-2003 à 17:39:36    

chrisbk a écrit :

Citation :

 for (cpt = 0; cpt == i; cpt++)


Qu'est ce que c'est que ces conditions d'arret ? [:mlc]
 


+1
 

Code :
  1. for (cpt=0; cpt <= i; cpt++)


 
est juste.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 17:41:52    

:??:  
Mais....
pourquoi ?
...
on la refait ?
d'abord, faut que je me tape un peu  [:lorill]  [:lorill]  
Après, heu.... ben, faut les changer ces conditions d'arret pardi...
 

Code :
  1. for (int i = 0 ; i <= ...
  2. //put1, g un gros trou de mémoire.... dans les for, c une  
  3. //condition d'arret "tant que" ou "jusqu'à ce que"...
  4. ...
  5. for (int cpt = 0 ; cpt <= i ; cpt++)


c'est mieux ? :D

Reply

Marsh Posté le 07-04-2003 à 17:43:11    

c'est juste. les conditions d'arrêt des boucles for sont des conditions "tant que"


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 17:43:14    

ah ben g été un peu long...
Harkonnen programme plus vite que son ombre...
Dis moi harkonnen, je t'ai vu poster sur à peu près tous les langages.. tu fais quoi dans la vie ? reclu dans une cave avec une connexion au net ou un vrai métier ?

Reply

Marsh Posté le 07-04-2003 à 17:43:17    

tant que vrai tu fais la boucle

Reply

Marsh Posté le 07-04-2003 à 17:43:17   

Reply

Marsh Posté le 07-04-2003 à 17:46:43    

backdafuckup a écrit :

ah ben g été un peu long...
Harkonnen programme plus vite que son ombre...
Dis moi harkonnen, je t'ai vu poster sur à peu près tous les langages.. tu fais quoi dans la vie ? reclu dans une cave avec une connexion au net ou un vrai métier ?


je fais partie des ces galériens des temps modernes que l'on appelle "analystes programmeurs" ou encore "développeurs"... à coté de ce boulot, les vassaux du moyen age étaient des seigneurs...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 17:48:06    

ne me dis pas ca... je sors d'iut....
je suis sensé en etre un moi aussi...
Apparement, on a pas appris les memes choses, ou alors g vraiment rien retenu moi....
 [:synth] IUT !!!
T'as fait quoi comme formation toi ?

Reply

Marsh Posté le 07-04-2003 à 17:49:37    

Harkonnen a écrit :


je fais partie des ces galériens des temps modernes que l'on appelle "analystes programmeurs" ou encore "développeurs"... à coté de ce boulot, les vassaux du moyen age étaient des seigneurs...


 
quequette ils avaient pas le net eux
 
Pis l'IUT C tres bien, jamais autant glander de ma vie [:ddr555]

Reply

Marsh Posté le 07-04-2003 à 17:54:26    

c clair....
Tain il est pourrave ce bouquin de mfc...
chui allé voir sur msdn, au lieu de trimer à faire des for pour incrémenter ta barre de 1 à chaque fois, tu fais SetPos(int indice);
quel con ce mike blaszczak...

Reply

Marsh Posté le 07-04-2003 à 17:57:31    

tain... on peut pas changer le texte d'un controle statique (moi chui un gars qui aime le vb, donc je dirais un label...) ?

Reply

Marsh Posté le 07-04-2003 à 17:59:07    

backdafuckup a écrit :

tain... on peut pas changer le texte d'un controle statique (moi chui un gars qui aime le vb, donc je dirais un label...) ?

label.Text = "texte"
(ou label.Caption, j'ai un doute la...)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 18:00:19    

oui, mais c en C++ que je voulais moi... vb c acquis déjà.... :sarcastic:
 
enfin, en mfc, je voulais dire...


Message édité par backdafuckup le 07-04-2003 à 18:00:43
Reply

Marsh Posté le 07-04-2003 à 18:00:29    

backdafuckup a écrit :

ne me dis pas ca... je sors d'iut....
je suis sensé en etre un moi aussi...
Apparement, on a pas appris les memes choses, ou alors g vraiment rien retenu moi....
 [:synth] IUT !!!
T'as fait quoi comme formation toi ?


Pareil que toi, mais j'y ai strictement rien appris. Ce que je savais, je l'ai appris en pur autodidacte. L'IUT m'a juste permis d'avoir ce que les décideurs adorent, souvent au détriment des réélles compétences : le diplôme.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 18:00:59    

chrisbk a écrit :


Pis l'IUT C tres bien, jamais autant glander de ma vie [:ddr555]


+1 :/


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 18:01:51    

Harkonnen a écrit :

label.Text = "texte"
(ou label.Caption, j'ai un doute la...)


 
...pas très objet tout ça.
Et label.SetWindowText("ton titre de label" );
c pas mieux !?

Reply

Marsh Posté le 07-04-2003 à 18:02:50    

l'iut, après deux ans, je trouve que ca ressemble plus à une grande blague.. Je suis en train de faire mon stage (pour la validation du diplome of course) au cnrs (enfin au cemes, c un labo antenne) le tout en c++. Je trime comme c pas permis parce que les cours de c++ de l'iut ne m'ont rien appris...
Par contre chuis fort en cobol... (et encore)

Reply

Marsh Posté le 07-04-2003 à 18:05:10    

backdafuckup a écrit :

oui, mais c en C++ que je voulais moi... vb c acquis déjà.... :sarcastic:
 
enfin, en mfc, je voulais dire...


CStatic hérite de CWnd, donc tu peux utiliser la méthode SetWindowText de CWnd pour changer le texte de ton static
 
edit: grilled


Message édité par Harkonnen le 07-04-2003 à 18:06:16

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 18:05:56    

El_gringo a écrit :


 
...pas très objet tout ça.
Et label.SetWindowText("ton titre de label" );
c pas mieux !?


En fait, c'est du VB, j'ai cru qu'il le voulait en VB :d


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 18:08:22    

oui... mais je t'explique, je voudrais que mon statique affiche la position de ma progress bar de tout à l'heure (je sais c chiant...).
 
Donc j'ai :
MonStatic->SetWindowText() qui attend un string...
Moi je veux afficher MaPBar->GetPos() qui renvoie un int...
Comment on cast d'un int à un CString ??  :(

Reply

Marsh Posté le 07-04-2003 à 18:10:28    

backdafuckup a écrit :

oui... mais je t'explique, je voudrais que mon statique affiche la position de ma progress bar de tout à l'heure (je sais c chiant...).
 
Donc j'ai :
MonStatic->SetWindowText() qui attend un string...
Moi je veux afficher MaPBar->GetPos() qui renvoie un int...
Comment on cast d'un int à un CString ??  :(  


i = MaPBar->GetPos();
CString.format("%d", i);


Message édité par Harkonnen le 07-04-2003 à 18:11:16

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-04-2003 à 18:15:59    

t'as corrigé enfoiré....
 :fou:  t'avais mis %i au départ... je comprenais pas..
Mais il me dit kan meme qu'il me mank un ';' avant '.' du format...
je v réessayer...

Reply

Marsh Posté le 07-04-2003 à 18:17:07    

et en plus quand je fais mon setwindowtext(i), il me dit qu'il peut pas le convertir de int à char *....

Reply

Marsh Posté le 07-04-2003 à 18:19:02    

:cry: ca marche paaaaaaaaaaaaaaaaaaaa  :cry:

Reply

Marsh Posté le 07-04-2003 à 18:37:55    

ben convertis ton int en char *
y'a pas SetDlgItemInt ou un truc du gout ?

Reply

Marsh Posté le 07-04-2003 à 22:46:36    

backdafuckup a écrit :

:cry: ca marche paaaaaaaaaaaaaaaaaaaa  :cry:  


attends, quand je marque  
 

Code :
  1. CString.format("%d",i);


 
CString fait référence à l'instance de CString utilisée pour le SetWindowText !!
 
Donc, tu dois taper ceci :
 

Code :
  1. CString caption;
  2. CStatic label;
  3. int pos;
  4. pos = MaPBar->GetPos();
  5. caption.Format("%d", pos);
  6. label.SetWindowText(caption);


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-04-2003 à 08:44:01    

ah ben vu comme ca....
Bon, ben la oui, ca doit marcher, forcément...
Et oublie pas de regarder tes mails...
++ merci encore

Reply

Marsh Posté le 08-04-2003 à 14:23:06    

harkonnen, si tu es la, as tu recu mon projet, et si oui, par le plus grand des hasards, y as tu jeté un oeil ? (pas trop fort kan meme, ca peut faire mal...) [:tekways]

Reply

Marsh Posté le 08-04-2003 à 14:25:56    

backdafuckup a écrit :

harkonnen, si tu es la, as tu recu mon projet, et si oui, par le plus grand des hasards, y as tu jeté un oeil ? (pas trop fort kan meme, ca peut faire mal...) [:tekways]  


nan je l'ai pas reçu ! il fait plus de 3 Mo et mon compte est limité à 2 Mo ! tu y a mis quoi dedans ? je n'ai besoin que des sources, pas des binaires !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-04-2003 à 14:35:40    

ah ben moi g mis tout mon dossier..... j'ai pas cherché à comprendre désolé... bon, je te remaile tout ca. [:lorill]

Reply

Marsh Posté le 08-04-2003 à 14:42:29    

voila c mailé

Reply

Marsh Posté le 08-04-2003 à 21:14:12    

Voila. J'ai pas testé car tu m'as pas envoyé le fichier de ressources. Mes commentaires sont dans ton source
 

Code :
  1. void CPremiereAppliDlg::OnSize(UINT nType, int cx, int cy)
  2. {
  3. CDialog::OnSize(nType, cx, cy);
  4. // TODO: Add your message handler code here
  5. // si le type de redimensionnement est une minimisation, on masque la fenêtre
  6. // et affiche l'icone dans le SysTray
  7. if (nType == SIZE_MINIMIZED) {
  8.  ShowWindow(SW_HIDE);
  9.  NOTIFYICONDATA nid;
  10.       nid.cbSize = sizeof(NOTIFYICONDATA);
  11.  //nid.hWnd = m_hWnd; FAUX !!!!
  12.  nid.hWnd = GetSafeHwnd(); // Juste !
  13.  //nid.uID = IDD_PREMIEREAPPLI_DIALOG; // tu sors ça d'ou ?  
  14.  nid.uID = 1; // c'est un identifiant d'icone qu'il faut mettre ici
  15.  nid.uFlags = NIF_ICON | NIF_MESSAGE;
  16.  strcpy(nid.szTip,"Chargement en cours..." );
  17.  nid.uCallbackMessage = WM_TRAYMESSAGE;
  18.  // nid.hIcon = m_hIcon; // FAUX !!!!
  19.  nid.hIcon = (HICON) AfxGetApp()->LoadIcon(IDR_MAINFRAME); // Juste !
  20.  // Shell_NotifyIcon(NIM_ADD,(_NOTIFYICONDATAA *)&nid); c'est quoi ce cast ??
  21.  VERIFY (TRUE == Shell_NotifyIcon(NIM_ADD, &nid); // plus simple, non ?
  22. }
  23. // c'est préférable d'effacer l'icone du SysTray en réponse au double clic sur l'icone !
  24. }


Message édité par Harkonnen le 08-04-2003 à 21:18:21

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-04-2003 à 10:43:13    

Je me permets, par les droits qui me sont conférés, d'être chiant une fois de plus. C cool, merci harkonnen pour ces précisions  [:flclsd]  
Mais ca me dit toujours pas comment faire marcher mon popupmenu avec le click droit...  :pfff:  
Parce que le double click gauche lui marche.
Quand je lance l'appli, il n'apparait pas, quand je clique sur minimize il apparait et la fenetre n'est pas dans la barre des taches, et quand je double clique sur l'icone, la fenetre réapparait (et l'icone disparait).
Certes, quand la fenetre réapparait, elle n'est pas active, mais tout de meme... ca ca marche.... Mais ce que je souhaite surtout, c faire marcher mon menu !!! [:aras qui rit]

Reply

Marsh Posté le 09-04-2003 à 10:53:25    

Je t'explique le cast que j'ai fait sur la ligne du Shell_NotifyIcon()...
 
J'ai fait ce que tu m'as écrit
 

Code :
  1. VERIFY(TRUE == Shell_NotifyIcon(NIM_ADD, &nid));


 
et il m'affiche l'erreur suivante :
 
E:\GRISTI\PremiereAppli\PremiereAppliDlg.cpp(256) : error C2664: 'Shell_NotifyIconA' : cannot convert parameter 2 from 'struct CPremiereAppliDlg::_NOTIFYICONDATA *' to 'struct _NOTIFYICONDATAA *'
 
donc j'avais fait un cast... et avec ce cast ca marchait.
(l'erreur est la même avec ta syntaxe comme avec la mienne d'ailleurs...)...

Reply

Marsh Posté le 09-04-2003 à 11:02:42    

Je t'explique le cast que j'ai fait sur la ligne du Shell_NotifyIcon()...
 
J'ai fait ce que tu m'as écrit
 

Code :
  1. VERIFY(TRUE == Shell_NotifyIcon(NIM_ADD, &nid));


 
et il m'affiche l'erreur suivante :
 
E:\GRISTI\PremiereAppli\PremiereAppliDlg.cpp(256) : error C2664: 'Shell_NotifyIconA' : cannot convert parameter 2 from 'struct CPremiereAppliDlg::_NOTIFYICONDATA *' to 'struct _NOTIFYICONDATAA *'
 
donc j'avais fait un cast... et avec ce cast ca marchait.
(l'erreur est la même avec ta syntaxe comme avec la mienne d'ailleurs...)...

Reply

Marsh Posté le 09-04-2003 à 11:38:46    

Bon, je regarderais ce soir


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed