Arret boucle while par clic bouton

julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009 - 14 mars 2006 à 18:42
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 14 mars 2006 à 23:05
Bonjour, je suis entrain de programer une API. Cette api est programmer dans une dialogu box. et je chehce a arreter une boucle while lorsque l'utilisateur appui sur une bouton. J'ai essayer les code suivant:



case IDC_BUTTON1:



while (end != 1)


{


number = number + 1;


}



case IDC_BUTTON2:


end = 1;


SetDlgItemInt(hDlg, IDC_EDIT1, number,FALSE);



return TRUE;

mais ca ne marche pas, en fait je ne peut plus cliquer sur aucun bouton snif

Quelqu'un a t'il une idee

8 réponses

anonyme_man_in_this_world Messages postés 161 Date d'inscription samedi 25 juin 2005 Statut Membre Dernière intervention 1 août 2006
14 mars 2006 à 19:07
en faite ,il y a 2 problemes dans ton programme :
1-le premier c'est que avec ta boucle tu risque de planter le programme ,puisque le

traitement ne se terminera jamais .

-il y a un break que tu as oublié dans ton code.

pour resoudre le probleme,je crois que tu doit faire une section critical et lancé un

thread ,puis atendre lors la presse du bouton la fin de ce thread.
0
cs_TeniX Messages postés 118 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 11 décembre 2011 2
14 mars 2006 à 19:30
tu peut utiliser un timer:



case WM_CREATE:

SetTimer(hwnd, 1, 10, NULL);

break;

case WM_TIMER:

if (end != 1)
number++;


break;
0
julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009
14 mars 2006 à 20:13
Merci de vos reponses.

Je vais essayer le thread meme si je n'y connait rein. Je penses que le timer ne correspond pas excatement a mon probleme mais si je n'arrive rein a faire avec le thread j'essayerai de faire un timer

en tout cas merci lesa gars je tiens au courant
0
julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009
14 mars 2006 à 20:54
Bon je me suis renseigner sur les thread et je penses que c'est une bonne solution mais seuleemnt je ne voit pas du tout comment l'implementer, quelqu'un pouraait il m'aiguiller

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 mars 2006 à 21:04
Tout est en dans Richter:
http://brunews.free.fr/brunews/download/JR4.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip

Je te rappelle encore que tu ne programmes pas une API mais tu t'en sers. Quand tu distribueras une DLL dont les autres programmeurs se serviront alors oui qu'on utilisera ton API.
Les mots ont un sens qu'il convient de respecter si on veut se comprendre.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009
14 mars 2006 à 22:32
Oui execsue moi BruNews je sias que les mots on un sens et qu'il ets important d'utiliser le bon mots pour exprimer la bonne chose afin de bien estre compris par tpus. Je ne connaisai pas avant ton explication la differnce entre programmer une API et se servir d'une API maintenant je sais. Mais de ton cote il faut aussi comprendre que tout le monde n'a pas la chance d'avoir tes tres bonnes connaissances en informatiques (moi les miennes se bornnait il y a 1 mois a la programmation en turbo pascal donc ...)
C'est beaucoup mieux qd on explique les choses au gens , encore merci de ton explication
0
julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009
14 mars 2006 à 22:51
Merci BrNews pour ta doc. Bon voila comme je suis un peu impatient, je ne suis pas contre lire la doc de BruNews, mais je voudrais savoir si la structure que j'envisage sera relisable. Cette structure est la suivante (je rappel que je programme une interface dans une dialogu box et que j'utilise les API ()de windows je pense)):

case Buton 1:
end = 0;
demarer le thread qui enregistre;
return true

casse Buton 2:
end = 1;
return true

et une structure de thread dans ce gout la:

while (end = 0)
{
enregistrer les donnees
}

merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 mars 2006 à 23:05
event button doit retourner 0.

Le reste pourquoi pas, juste gaffe que ton: while(!fini) ne bouffe pas trop de ressources.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous