[C++] - Fermeture d'application MFC
Bonjour,
Je sais que la FAQ existe et je l'ai consult�. Elle ne r�sout pas mon probl�me qui � l'air simple en apparence.
Si on cr�� par exemple un application MFC tout simple, qu'on la compile et que l'on d�marre la solution. on s'apper�oit que l'on peut fermer la fen�tre de dialogue avec la croix.
Mais dans un projet que j'ai, il m'arrive de ne pas voir la fermer en cliquant sur la croix. donc je ne comprend pas d'o� vient l'erreur parce que la fermeture avec la croix n'est pas explicite dans le code...
Si des personnes pouvais m'aider, je les remercie !
Contr�ler la fermeture d�une application MFC
Le moyen le plus simple de contr�ler la fermeture d�une application MFC est de g�rer le message WM_CLOSE
void CMainFrame::OnClose()
{
if (!GetTheApp()->PromptToSaveData())
return;
CFrameWnd::OnClose();
}
o� CMainFrame est votre classe de fen�tre principale, GetTheApp() un pointeur sur votre objet application et PromptToSaveData() est par exemple une fonction de votre classe CMyApp retournant TRUE si l�application peut �tre ferm�e.
� Vous pouvez aussi surcharger la fonction virtuelle
virtual BOOL SaveAllModified();
de la classe CWinApp.
Un exemple de surcharge est le suivant :
BOOL CMyApp::SaveAllModified()
{
if (PromptToSaveData())
return CWinApp::SaveAllModified();
else
return FALSE;
}
J�ai essay� de g�rer le message ID_APP_EXIT mais h�las il n�est pas d�clench� dans ma classe de fen�tre principale et ni m�me dans aucune de mes autres classes de fen�tre.
J�ai aussi essay� avec WM_QUERYENDSESSION mais sans succ�s.
Cependant, si vous voulez plut�t fermer votre application de n�importe o� dans votre projet, il vous suffit d�appeler la fonction
PostQuitMessage(0);