일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 티스토리 초대장
- 프로그램 개발
- 윈윈전략
- 고스톱
- 틀린그림찾기
- 맞고게임
- 서치아이
- 포커
- 써치아이
- 판매
- 틀린그림 찾기
- 프로그램 외주
- 영어단어게임
- 영어단어
- 게임 외주
- 온라인게임
- 옥션해킹
- 카일레라서버
- 보드게임
- 카일레라
- 옥션소송
- Mame32
- 게임 개발
- 맞고
- 윈윈
- 상호링크
- MAME
- 포커게임
- 홀뎀
- holdem
- Today
- Total
kyuseo의 게임 프로그래밍
WM_CLOSE -> WM_DESTROY -> WM_QUIT :: 윈도우 프로그램의 종료 메시지 순서 본문
개요.. |
윈도우 프로그램이 종료되는 메시지의 순서를 알고 적절한 대처를 합니다. 이것을 응용하면 윈도우가 죽기직전에 살릴 수도 있습니다.
사용자가 종료(X)버튼 클릭 -> WM_SYSCOMMAND -> WM_CLOSE -> WM_DESTROY -> WM_QUIT
코드 |
MFC 의 경우 b1 -> b2-> b3-> b4 의 순서로 코드가 진행됩니다.
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 } |