2010-06-27 3 views
2

J'ai lu beaucoup d'articles sur le sujet, quelques-uns d'entre eux étaient ici, sur stackoverflow, mais aucun d'eux n'a posé ma question. Je vais essayer d'être précis.Programme multi-fenêtres

Je dois créer une application (WinAPI natif) avec une fenêtre principale (de la classe de fenêtre "a"). Lorsque l'utilisateur clique sur un bouton, une fenêtre de la classe "b" apparaît. Cela peut être modal ou pas, je m'en fiche maintenant.

J'ai essayé de faire une application avec deux classes de fenêtres et deux procédures de fenêtre. Mais le problème est que lorsque je ferme la deuxième fenêtre, l'application entière s'arrête.

Merci.

Répondre

2

En guise de supposition, la procédure de la fenêtre de votre deuxième fenêtre est basée sur celle d'une fenêtre principale, donc quand elle reçoit un WM_DESTROY, elle appelle PostQuitMessage. Cela est normal pour la fenêtre de niveau supérieur, car l'utilisateur s'attend à le détruire pour quitter l'application. Pour une fenêtre enfant (modale ou autre) ce n'est pas le cas, donc l'enfant devrait pas (encore, normalement) appeler PostQuitMessage dans son gestionnaire WM_DESTROY.

+0

Merci, c'était la solution. En fait, j'ai inversé les paramètres de nom de classe et de titre dans l'appel CreateWindow (on dirait que le mal de tête fait bien son boulot). La fenêtre contextuelle utilisait donc la procédure de la fenêtre principale, qui avait l'appel PostQuitMessage. Quoi qu'il en soit, merci. – GeorgeK

Questions connexes