Bonjour à tous,
Je suis entrain de développer un logiciel sous Visual Studio en C++ à base de fenêtres Dialog.
Je souhaite communiquer entre une fenêtre et un processus lancer à partir de celle-ci.
Je lance le processus de la façon suivante :
TagDetectThread étant la classe qui contient le processus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CRuntimeClass* m_pThread = RUNTIME_CLASS(TagDetectThread); AfxBeginThread(m_pThread,THREAD_PRIORITY_NORMAL,0,0,NULL);
Je comptais utiliser les fonctions suivantes mais je n'arrive pas a les faire fonctionner :
PostThreadMessage
RegisterWindowMessage
ON_REGISTERED_THREAD_MESSAGE
A la suite d'un "click" sur un bouton, je veux déclencher la fin du thread.
J'utilise donc la fonction suivante :
Dans la classe comportant mon thread, j'ajoute juste après la boite de message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DWORD ID; ID = (ULONG)GetCurrentThreadId; PostThreadMessage(ID,WM_QUIT,0,0);
Dans cette fonction Run, je met une fonction de détection de cette forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [i]ON_THREAD_MESSAGE(WM_QUIT,Run) // Run étant la fonction du thread
MSG msg;
Malheureusement elle ne fonctionne pas. Etant donné que je débute en MFC - C++, je ne comprends pas pourquoi celà ne marche pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(GetMessage(&msg,NULL,0,0)<0) AfxMessageBox("Error");
Ais-je oublié quelque chose ? Y a-t-il quelque chose de mal défini ?
Merci beaucoup pour votre aide.
utilise la balise code, Merci Farscape
Partager