begin process at 2012 05 30 13:50:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

threads et methodes


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

threads et methodes

jeudi 30 septembre 2004 à 14:25:56 | threads et methodes

GWW

Bonjour a tous,

Le but du jeu est de creer un thread qui lance l evenement " My_event" en boucle:

///////////////////////////////////////////////////////////////////////////////////
DWORD WINAPI ThreadProc(LPVOID lpParam);

void my_class::evenement_unique()
{
FireMyEvent();
}

void my_class::evenement_en_boucle()
{
DWORD ThreadId;

CreateThread(NULL, NULL, ThreadProc, NULL, NULL, &ThreadId);
}

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
while (42)
{
// creer l evenement My_event
Sleep(10);
}
return (0);
}
Le code suivant ne fonctionne pas....
//////////////////////////////////////////////////////////////////////////////////
void my_class::evenement_en_boucle()
{
DWORD ThreadId;

CreateThread(NULL, NULL, ThreadProc, (LPVOID)this, NULL, &ThreadId);
}

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
Cmy_class *mc;

mc = (Cmy_class *)lpParam;
while (42)
{
mc->FireMyEvent();
Sleep(10);
}
return (0);
}
et ca non plus...
////////////////////////////////////////////////////////////////////////////////////
void my_class::evenement_en_boucle()
{
DWORD ThreadId;

CreateThread(NULL, NULL, ThreadProc, (LPVOID)this, NULL, &ThreadId);
}

LRESULT CImageXCtrl::OnItUserMsg(WPARAM, LPARAM)
{
FireMyEvent();
return (0);
}

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
Cmy_class *mc;

mc = (Cmy_class *)lpParam;
while (42)
{
mc->PostMessage(WM_USER, 0, 0);
Sleep(10);
}
return (0);
}

les fonctions présentées RESUMENT mon code qui ressemble plus a ca:

///////////////////////////////////////////////////////////////////////////////////////////////
WaitForSingleObject(hEvent,INFINITE);
//while (1)
// {
//imgX->SetImage((long)(my_img[abs(cur)%nb_img]));
//if (cur >= nb_img - 1)
//cur_sens = -1;
//if (cur <= -1)
//cur_sens = 1;
//cur += cur_sens;
//imgX->FireImagePrete();
//Sleep(10);
//}
//int e = 0;
//int post_ret = 0;
// HWND hFore = GetForegroundWindow();
// PostMessage(hFore, WM_PAINT, 0,0);
//::PostThreadMessage(GetCurrentThreadId(), WM_PAINT, 0 ,0);
//HWND hWnd = (HWND)NULL;
// post_ret = PostMessage(hWnd, WM_USER, 0, 0);
//PostThreadMessage(gl_thread_id, WM_USER, 0 ,0);
//e=1;
//imgX->PostMessage(WM_USER, 0, 0);
//PostMessage( GetParent(0)->m_hWnd, WM_USER, 0,0);
//GetLastError();
//imgX->FireImagePrete();
// post_ret = SendNotifyMessage(HWND_BROADCAST, WM_USER, 0, 0);
// SendMessage(0, WM_USER, 0, 0);
// PostMessage(HWND_BROADCAST, WM_USER, 0, 0);
gl_imgX->PostMessage(WM_USER, 0, 0);
char *s;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &s,
0, NULL );
::MessageBox(0, s, "error", 0);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
merci pour votre aide et/ou vos idées.




Cette discussion est classée dans : class, user, wm, hwnd, my


Répondre à ce message

Sujets en rapport avec ce message

Screenmate defectueux [ par anthraxx ] Anthrax ignisque -- Le charbon et le feu J'essaye de faire un screenmate (une petite bestiole se promenant sur les fenetres), mais n'etant pas tres ex pb a la fermeture de win [ par stick ] bonjours,alors voilou, je fais une appli en utilisant l'api window, mais si je ferme windows sans quitter le programme auparavant, celui ci plante et Problème avec WM_KEYDOWN: [ par cognac ] Pourquoi est-ce que "j" est toujours égal à 2 lorsque je presse F1(même la première fois). Je pensais qu'à chaque fois que je presse F1 "j" augmente d Problème menu [ par LordBob ] Bonjour a tous,voila j'ai ecrit le tout début d'un programme... celui ci pour l'instant, ne fait que se ranger dans la systray... j'ai commencé a fair Probleme de Timer avec SetCursorPos [ par Maegis ] Voila je fais une appli Win32 qui necesite l'emploi d'un timerLe probleme c'est que je ne recois jamois le message WM_TIMER ,en fait je le recois si j recuper le chemin d'un executable a partir du titre, ou HWND ou Class [ par youpiyoyo ] Bon voila j'ai le titre du programme, j'ai également sa class, et son HWND...maintenant j'aimerai recup le chemin.... genre c:\windows\prog.exeje suis CreateWindowEx [ par Galmiza ] Salut,J'ai fait une application en plein ecran en utilisant la fonction CreateWindowEx et directX. (pour l'instant j'ai desactivé les textures)L'appui tester une touche [ par pmolina ] bonjour,J'aimerai reussir a valider les données saisies dans une editBox par le bouton enter. J'ai utilisé la fonction GetKeyState() mais ca marche da Affichage bitmap [ par gregory6 ] GringoBonjour, je suis débutant ss visual C++ et j'aurai besoin d'un peu d'aide. Je crée un projet MFC ds lequel je crée une fenetre. Cette fenetre cr Re : WM_KEYDOWN interception touche clavier [ par gregory6 ] GringoBonjour, Je débute sous visual C++ et j'ai un petit problème sur les interceptions de touches au clavier. J'aimerai récupérer les touches du cla


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,250 sec (4)

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