begin process at 2012 05 28 23:35:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Creation d'un Thread en MFC et arret par un bouton


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Creation d'un Thread en MFC et arret par un bouton

dimanche 20 juin 2004 à 15:23:58 | Creation d'un Thread en MFC et arret par un bouton

djtiaf

Bonjour à tous,

Je cherche à créer un Tread tout simple :
fonction Thread du bouton Start
{
while (arret=false)
{




Sleep(1000) // on laisse 1 sec a l'utilisateur pour appuyer sur un bouton

Si on appuie sur le bouton STOP, arret=true et on sort de la boucle;
}

}

Voila, je pense que c'est pas très dur, j'ai fait quelques recherche, mais je n'ai pas trouvé comment arrêter un Thread quand on veut.

Merci d'avance pour m'aider .

DJ T.
dimanche 20 juin 2004 à 15:27:38 | Re : Creation d'un Thread en MFC et arret par un bouton

BruNews

Administrateur CodeS-SourceS
mets une variable
int bstop = 0;
ton bouton: bstop = 1;

dans thread:
while(!bstop) {
.....
}
return 0;

ciao...
BruNews, Admin CS, MVP Visual C++
dimanche 20 juin 2004 à 16:11:09 | Re : Creation d'un Thread en MFC et arret par un bouton

djtiaf

Ouai, je vois bien ce que tu veux dire. Mais le problème c'est que je ne sais pas trop comment déclarer un thread (je commence aujourd'hui à m'interesser au Thread !)

Et j'ai vu qu'il existe une section critique, mais je ne sais pas trop si ça pourrait servir.

Voici une partie de mon prog :


void CMenuSimulation::OnButtonExe()
{

CListBox* pListe=(CListBox*)GetDlgItem(IDC_LIST_SORTIE);

while (Arret==0)
{
...
pListe->InsertString(-1, " bla bla bla"); // je dois afficher dans une ListeBox
...
}


}


void CMenuSimulation::OnButtonStop()
{
Arret=1;
}

Si on pouvait m'aider à remplir mon prog pour déclarer le Thread, ça serait fantastic !!!
Merci d'avance pour votre aide

DJ T.
dimanche 20 juin 2004 à 16:15:40 | Re : Creation d'un Thread en MFC et arret par un bouton

BruNews

Administrateur CodeS-SourceS
En direct API serait ok pour t'aider mais MFC, tres peu pour moi.

ciao...
BruNews, Admin CS, MVP Visual C++
dimanche 20 juin 2004 à 16:18:21 | Re : Creation d'un Thread en MFC et arret par un bouton

djtiaf

OK BruNews, merci quand meme ;-)

DJ T.
dimanche 20 juin 2004 à 16:54:53 | Re : Creation d'un Thread en MFC et arret par un bouton

djtiaf

Bon, j'avance plutot bien. Mais il ne me reste plsu que de l'affichage à faire... (pourtant c le truc le + facile) mais j'ai une erreur : error C2660: 'GetDlgItem' : function does not take 1 parameters. Cette erreur vient de ma CListeBox*.

Voici le bout de prog :

DWORD WINAPI Thread_Test( LPVOID lpParam )
{


// hstatus = GetDlgItem(hdlg, IDC_LIST1);
do
{

Arret+=1;

CListBox* pListe=(CListBox*)GetDlgItem(IDC_LIST1);


Sleep(100L);

/*-- on boucle tant que l'on n'a pas recut d'événement stopper --*/
}while( WaitForSingleObject( d_eventStop, D_TIME_OUT_TEST ) == WAIT_TIMEOUT );


CloseHandle( d_eventStop );
d_eventStop = NULL;

return 0;
}


Voila, si quelqu'un pouvait m'aider, ça serait cool.
(en attendant, je vais continuer mes recherches...)
dimanche 20 juin 2004 à 17:16:59 | Re : Creation d'un Thread en MFC et arret par un bouton

BruNews

Administrateur CodeS-SourceS
Faudrait que tu passes pointeur sur fenetre mere pour faire ton GetDlgItem dessus.

ciao...
BruNews, Admin CS, MVP Visual C++
dimanche 20 juin 2004 à 17:43:30 | Re : Creation d'un Thread en MFC et arret par un bouton

djtiaf

Ouai, je comprends ce qu'il faut faire. mais je ne vois pas comment le faire pointer. t'aurais pas une solution par hasard ?

merci BruNews
DJ T.
dimanche 20 juin 2004 à 17:48:56 | Re : Creation d'un Thread en MFC et arret par un bouton

BruNews

Administrateur CodeS-SourceS
passe pointeur de ta CDialog en param du thread.

ciao...
BruNews, Admin CS, MVP Visual C++
dimanche 20 juin 2004 à 18:56:13 | Re : Creation d'un Thread en MFC et arret par un bouton

djtiaf

Ok, j'ai déclaré un pointeur en param du thread : voici

DWORD WINAPI Thread_Test( LPVOID lpParam)
{

CESSAICPPDlg* pObject = (CESSAICPPDlg*)lpParam; // ça marche.

if ((pObject == NULL) || !pObject->IsKindOf(RUNTIME_CLASS (CESSAICPPDlg))) // ça marche pas.

return 1;

do
{

Arret+=1;
pObject->OnButtonAff();

Sleep(100L);

}while( WaitForSingleObject( d_eventStop, D_TIME_OUT_TEST ) == WAIT_TIMEOUT );

CloseHandle( d_eventStop );
d_eventStop = NULL;

return 0;
}

Je ne comprends pas pourkoi cette instruction " if ((pObject == NULL) || !pObject->IsKindOf(RUNTIME_CLASS (CESSAICPPDlg))) " ne marche pas ???

pourtant ma classe s'appelle bien CESSAICPPDlg.

et la fonction OnButtonAff() permet d'afficher la variable Arret

voila merci pour les tuyaux.

DJ T.


Cette discussion est classée dans : bouton, arret, creation, mfc, thread


Répondre à ce message

Sujets en rapport avec ce message

Multitache et MFC [ par tigerskin ] Bonjour a tous.J'ai un petit soucis je  voudrais réaliser un bouton d'arret d'urgence pour une application qui execute une tache en fond et qui me blo MFC en C++ [ par ja92 ] Bonjour ,Débutant en programmation je souhaite réaliser une application en MFC qui afficherait une fenetre avec un texte.Ce texte serait composé d' un bouton retour en mfc [ par ja92 ] Bonjour ,J' ai crée un bouton dans une MFC comment faire pour que lorsqu on appui dessus on revient a la page précédente ? Creation d'une fenetre d configuration [ par bordeaux ] Bonjour,j'aimerais créer une action sur un élément qui permettent de faire la meme chose que le bouton options de mozilla par exemple.EN fait j'ai dej Creation de timer [ par julienbornet ] Bonjour j'ai besoin de creer un timer qui verifie l'etat d'un bouton (s'il a ete cliquer ou non) pendant qu'une autre action s'effectue.Pourr etre plu Création button avec VC++ [MFC] [ par stefo666 ] Salut à tous!J'ai crée un bouton à l'aide du code suivant:cmdhWnd = CreateWindowEx(0, "BUTTON", "Caption", WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | B Bouton tournant en MFC [ par med_mt ] Je suis débutant dans l'utilisation de MFC, et je veux réaliser un bouton tournant dans mon interface comme celui de l'oscilloscope. Est-ce que quelqu bouton reduire sur MFc [ par thejrem ] bonjour j'aimerai votre aide pour rajouté a un projet visaul studio MFC le bouton reduire en haut a droite a coté de la croix pour fermé quelqu'un au thread pour visual c++ express 2005 [ par maaanuuu ] bonjour voila je sais que cela parait tout con mais je ne sais pas du tout comment utiliser des thread sous visual c++ 2005...Voila je veux clicker su État d'un bouton MFC [ par NiFF ] Bonjour tout le monde.Comment fait-on pour changer l'état d'un bouton? J'ai créé sur ma feuille MFC un bouton avec la propriété "Disabled". Comment fa


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,435 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales