Bonjour
Je suis confronté au problème suivant, avec mon application DirectX 9. Lorsque je suis en mode release, et que j'appuie sur ALT+F4, l'application semble se fermer. Seulement, en regardant dans le gestionnaire de tâches, elle est encore là, et après quelques tests j'ai vu que la boucle générale était toujours active. Des tests suivants m'ont appris que le message WM_QUIT n'a tout s'implement jamais été capté par ma boucle de message.
Cette boucle est pourtant normale :
(Pour info, le WM_QUIT traité met g_CallLoop à false.)
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 bool g_CallLoop=true; while( g_CallLoop ) { if( PeekMessage(&Msg,NULL,0,0,PM_REMOVE) ) { TranslateMessage(&Msg); DispatchMessage(&Msg); } else if( !Update() ) g_CallLoop = false; }
Et, dernier élément pour me rendre encore plus perplexe : en debug, ce problème n'apparaît pas, le WM_QUIT est capté parfaitement !
J'ai posté ce message sur directx car ça ne m'était jamais arrivé avant, sur de la pure api windows (problème de traitement des messages en mode release, genre interceptés par directx ?). J'attends vos commentaires avec impatience !
Partager