본문 바로가기
C++ 200제/코딩 IT 정보

IsWindo, MFC 다이얼로그 종료 메시지 순서 (윈도우 폼 끝내기)

by vicddory 2017. 2. 28.

IsWindo, MFC 다이얼로그 종료 메시지 순서 (윈도우 폼 끝내기)


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 다이얼로그 종료 메시지 순서 (윈도우 폼 끝내기)





댓글