CMainFrame::OnAppExit

Intrebari legate de programarea cu biblioteci precum MFC, ATL, WTL si GDI+.
Post Reply
mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

CMainFrame::OnAppExit

Post by mesajflaviu » 11 May 2012, 15:07

Intr-o aplicatie MDI am mapat urmatoarele handlere :

Code: Select all

void CMainFrame::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
TRACE("OnClose\n");
	CMDIFrameWnd::OnClose();
}

void CMainFrame::OnAppExit() 
{
	// TODO: Add your command handler code here
TRACE("OnAppExit\n");
	CFrameWnd::OnClose();
}
daca incerc sa inchid aplicatia intotdeauna prin meniul File->Exit, am observat ca daca am deschis vreun CChildFrame executia merge prin CMainFrame::OnClose(), daca nu am nici un child deschis, executia merge prin CMainFrame::OnAppExit() .... intrebarea mea este daca pot face ca aplicatia sa mearga intotdeauna prin CMainFrame::OnAppExit(), sau eventual sa stiu daca user-ul a incercat sa iasa prin meniul File->Exit ?

Pot scrie si de ce vreau asta : daca am setata o anumita variabila globala, la OnClose aplicatia se minimizeaza in systemtray, dar daca am vreun child deschis si incerc sa inchid aplicatia prin File->Exit, se minimizeaza, nu se inchide ... aceasta comportare o are doar in cazul aplicatiilor MDI, nu si SDI ...



Viorel
Microsoft MVP
Microsoft MVP
Posts: 293
Joined: 13 Jul 2007, 12:26

Re: CMainFrame::OnAppExit

Post by Viorel » 11 May 2012, 20:36

Dacă adaugi cîte un handler pentru ID_APP_EXIT în trei clase — CChildFrame, CMainFrame şi clasa derivată din CWinApp, atunci unul se va executa numaidecît. Cel mai simplu ar fi să adaugi numai în clasa derivată din CWinApp.

mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: CMainFrame::OnAppExit

Post by mesajflaviu » 11 May 2012, 21:30

Viorel, se pare ca merge pe aplicatia de test, implementez solutia la aplicatia reala, sper sa fie OK, multumesc.

Post Reply