Je voudrais mettre la boucle des messages dans un thread a part. Je precise tout de suite que je ne suis pas du tout un expert en threads
Je voudrais avoir un code comme ceci :
Evidement, la boucle des message bloque tout et je dois l'executer dans un autre thread. Notez que la main loop doit rester telle quelle. En particulier, je ne dois pas la placer dans un thread.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 int main () { /* message loop */ while ((ret = GetMessage (&msg, NULL, 0, 0))) { /* translate and dispatch */ } /* creation de plusieurs fenetres */ w1 = CreateWindow (***); w2 = CreateWindow (***); ShowWindow (w1); ShowWindow (w2); /* main loop */ while (1) { *** } return 0; }
Donc, j'ai essaye ce code:
Le resultat est que mes fenetres sont bloquees vu qu'elles n'ont pas ete creees dans le meme thread de GetMessage (si j'ai bien compris la doc).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 void message_loop (void *data) { MSG msg; while ((ret = GetMessage (&msg, NULL, 0, 0))) { /* translate and dispatch */ } } int main () { MSG msg; /* message loop */ _beginthread(message_loop, 0, NULL); /* creation de plusieurs fenetres */ w1 = CreateWindow (***); w2 = CreateWindow (***); ShowWindow (w1); ShowWindow (w2); /* main loop */ while (1) { *** } return 0; }
Que faut-il que je fasse pour creer mes fenetres dans le meme thread que GetMessage ?
merci
Partager