때에 따라서는 Dialog 창을 갑자기 종료시켜야하는 경우가 발생한다.

 

이러한 경우 여러 해결방법이 있겠지만, 그중에서 직접 찾아보고 시도해봤던, 그리고 추천하는 방법을 작성해본다.

 

OnClose()

-> 정말 프로세스 도중에 창을 닫아버린다. 따라서 메모리릭 발생

 

Exit(0)

-> 피차일반, 비정상적인 종료라면서 마찬가지로 오류 또는 메모리릭 발생

 

::PostQuitMessage(WM_QUIT)

-> 아래와 같은 경고창이 발생한다. 이말인 즉슨, 안전한 종료방법은 아니라는듯하다.

"경고: 대화 상자를 만들지 못했으므로 응용 프로그램이 예기치 않게 종료됩니다.
경고: 대화 상자에서 MFC 컨트롤을 사용하는 경우 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS를 수행할 수 없습니다."

 

::SendMessage(this->m_hWnd, WM_CLOSE, NULL, NULL) 혹은 ::SendMessage(GetSafeHwnd(), WM_CLOSE, NULL, NULL)

-> 메모리릭이 발생하지 않는다. 그리고 아무런 경고 엾이 정상적으로 종료가 된다.

 

참고 : http://egloos.zum.com/CharlesM/v/1279955

 

Posted by Tommy™
,