Aidez moi svp, pb visual c++
Résolu
Djule
-
Djule -
Djule -
Voila, j'ai déja posté un message exposant ce probleme que je n'ai malheuresement toujours pas résolu.
En gros je voudrais qu' en cliquant sur un bouton se situant dans une boite de dialogue, une instruction (Partie 1) s'execute puis que la boite de dialogue se mettent a jour. Jusqu'ici rien de bien compliqué :)
Mais je voudrais que au bout de 3 secondes (apres la 1re mise a jour de la boite de dialogue) , il y ait une seconde instruction (Partie 2) qui s'execute suivie d'une nouvelle mise a jours dans la boite de dialogue.
A priori le codage de tout ca ne semble pas trop poser de pb mais voila 3 jours que je m'arrache les cheveux devant.
Voila le programme que j'ai créé :
Hors a l'execution de se programme, lorsque je clique sur le bouton ok, il n'y a pas deux mise a jours de la boite de dialogue mais une seule qui se produit apres le timer. Et je ne vois vraiment pas pourquoi puisque le Updata(FALSE) est bien appelé juste apres l'instruction 1.
Voyez vous un moyen d'obtenir se que je voudrais.
PS: le pb ne viens pas du timer puisque le meme resultat se produit losque je le remplace par le codage suivant :
Je pense plutot que le probleme viens du UpdateData.
En gros je voudrais qu' en cliquant sur un bouton se situant dans une boite de dialogue, une instruction (Partie 1) s'execute puis que la boite de dialogue se mettent a jour. Jusqu'ici rien de bien compliqué :)
Mais je voudrais que au bout de 3 secondes (apres la 1re mise a jour de la boite de dialogue) , il y ait une seconde instruction (Partie 2) qui s'execute suivie d'une nouvelle mise a jours dans la boite de dialogue.
A priori le codage de tout ca ne semble pas trop poser de pb mais voila 3 jours que je m'arrache les cheveux devant.
Voila le programme que j'ai créé :
void CProjetDlg::OnOK() { UpdateData(TRUE); dlg_rep_user=m_rep; //Partie 1 m_verif=Verification(); UpdateData(FALSE); Sleep(30); //Partie 2 dlg_quest=quest(); dlg_rep=trad(); m_ang=dlg_quest; m_rep=""; drap=0; UpdateData(FALSE); }
Hors a l'execution de se programme, lorsque je clique sur le bouton ok, il n'y a pas deux mise a jours de la boite de dialogue mais une seule qui se produit apres le timer. Et je ne vois vraiment pas pourquoi puisque le Updata(FALSE) est bien appelé juste apres l'instruction 1.
Voyez vous un moyen d'obtenir se que je voudrais.
PS: le pb ne viens pas du timer puisque le meme resultat se produit losque je le remplace par le codage suivant :
long start, end; time(&start); do { time(&end); } while(end-start<3);
Je pense plutot que le probleme viens du UpdateData.
A voir également:
- Aidez moi svp, pb visual c++
- Visual c++ 2019 - Guide
- Visual petanque - Télécharger - Sport
- Visual paradigm - Télécharger - Gestion de données
- Visual watermark - Télécharger - Photo & Graphisme
- Visual basic - Télécharger - Langages
3 réponses
Le problème c'est que ton programme doit se séparer en deux puisque le updatedata se fait en parallèle du sleep. Et ça, ça se fait avec un fork(). Car actuellement ca doit faire update, puis sleep, puis update.
Bonne chance
Bonne chance
Reflexe du programmeur : Google dit
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/fork.2.html
Y a même un exemple ;)
Bonne chance
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/fork.2.html
Y a même un exemple ;)
Bonne chance
Mais peu tu m'en dire un peu plus car je ne vois pas trop comment changer mon code de plus je ne connais pas du tout fork(), et ne sais comment l'utiliser.