Tutorial d'initiation A la programmation avec l'API Windows
Tutorial d'initiation a la programmation Windows avec Microsoft Visual C++
Chapitre 3Les fenêtres5. Destruction d'une fenêtre
Cours théorique :
La destruction d'une fenêtre se traduit par l'envoi à la fenêtre concernée d'un message WM_DESTROY. Il ne faut pas confondre ce message avec le message WM_QUIT. WM_QUIT demande la fermeture totale de l'application, le message WM_DESTROY demande simplement la destruction de la fenêtre en question. Le fait de cliquer sur la 'croix' provoque l'envoi d'un message WM_DESTROY à la fenêtre. Pour faire quitter l'application en même temps que la fermeture de la fenêtre, on peut utiliser la fonction PostQuitMessage() qui elle, envoie un message WM_QUIT. Cette fonction doit être appelée dès la réception du message WM_DESTROY. Le 'handle' de la fenêtre devient invalide dès la destruction de la fenêtre. Pour tester la validité d'un 'handle', on peut utiliser la fonction IsWindow().
Lorsque ce message est reçu, la fenêtre est déjà en cours de destruction. Il est possible de traiter le message WM_CLOSE pour demander une autre action que la destruction de la fenêtre. On peut par exemple, masquer la fenêtre. Une pression sur la 'croix' provoquera donc simplement la disparition à l'écran de la fenêtre, mais pas au niveau système. La fenêtre pourra par la suite être réaffichée dans le même état, par un appel à la fonction ShowWindow().
|