간단하게 WM_QUERYENDSESSION 메시지를 사용하면 된다.

사용 코드 원형은 아래와 같다.

// 헤더파일의 메시지 맵 내에서,

 afx_msg BOOL OnQueryEndSession(); 추가

// cpp 파일 내에서 아래와 같이 사용



운영체제가 종료할 때 WM_QUERYENDSESSION 메시지가 프로그램에 전달되게 된다.
운영체제가 종료될 때는 윈도우를 파괴하지 않기 때문에 WM_CLOSE 메시지가 전달되지 않는다.

WM_QUERYENDSESSION 메시지를 받으면 OnQueryEndSession 에서 저장되지 않은 파일의 저장 등의 처리를 해 준 후에 return TRUE 를 하면 정상적으로 운영체제 종료가 완료된다. return FALSE 인 경우에는 운영체제의 종료가 취소된다.

AND