Pb a la fermeture de win

cs_stick Messages postés 1 Date d'inscription mardi 6 août 2002 Statut Membre Dernière intervention 6 août 2002 - 6 août 2002 à 18:05
cs_gaya Messages postés 47 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 10 août 2002 - 8 août 2002 à 17:01
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 empeche la fermeture, voici le bout de code concerné (je pense) :

/* This function is called by the Windows function DispatchMessage() */
LRESULT CALLBACK
WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_QUIT:
case WM_CLOSE:
case WM_DESTROY:
PostQuitMessage (0); /* send a WM_QUIT to the message queue */
break;
default: /* for messages that we don't deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}

je pense que je n'arrive pas a "attraper" l'appel lors de la fermeture. pour info c codé sous devc++

voilou, un grand merci a ceux qui m'aideront :)

1 réponse

cs_gaya Messages postés 47 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 10 août 2002
8 août 2002 à 17:01
oui en effet il y a execution de l'instruction PostQuitMessage(0) en loop, car juste en dessous tu place un break:

cette fonction envoie le message WM_QUIT, or dans ton programme WM_QUIT mène vers WM_CLOSE qui mène a son tour a WM_DESTROY et donc à nouveau à PostQuitMessage(0).

Donc l'instruction de terminaison normale qui se trouve dans DefWindowProc ne s'execute pas. Je te conseille la facon suivante de proceder:

LRESULT CALLBACK
WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_QUIT:
return 0;
case WM_CLOSE:
return 0;
case WM_DESTROY:
PostQuitMessage (0); /* send a WM_QUIT to the
message queue */
return 0;
default:
}

// dans tous les cas non gerer, cela s'execute
return DefWindowProc (hwnd, message, wParam, lParam);
}

GAYA, LA PUISSANCE NATURELLE
0
Rejoignez-nous