티스토리 뷰
목차
반응형
IsWindo, MFC 다이얼로그 종료 메시지 순서 (윈도우 폼 끝내기)
윈도우 프로그램이 종료되는 메시지의 순서를 알고 적절한 대처를 합니다. 이것을 응용하면 윈도우가 죽기직전에 살릴 수도 있습니다.
사용자가 종료(X)버튼 클릭 -> WM_SYSCOMMAND -> WM_CLOSE -> WM_DESTROY -> WM_QUIT
아래 코드는 b1 -> b2-> b3-> b4 의 순서로 코드가 진행됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | void CMainFrame::OnClose() { BOOL b1 = ::IsWindow( m_hWnd ); // b1 = TRUE // 윈도우를 살릴 수 있는 마지막 기회!!! (중요) if( 윈도우가 살아야함 == TRUE ) return; CFrameWnd::OnClose(); BOOL b4 = ::IsWindow( m_hWnd ); // b2 = FALSE 윈도우가사라졌다. } void CMainFrame::OnDestroy() { BOOL b2 = ::IsWindow( m_hWnd ); // b1 = TRUE CFrameWnd::OnDestroy(); BOOL b3 = ::IsWindow( m_hWnd ); // b1 = TRUE } | cs |
IsWindo, MFC 다이얼로그 종료 메시지 순서 (윈도우 폼 끝내기)
반응형