위도우 시작메뉴에서 윈도우 시스템 종료를 선택하게 되면
윈도우가 종료가 되면서 모든 응용 프로그램에
WM_QUERYENDSESSION 메세지와 WM_ENDSESSION 가 날라간다고 알고
있습니다. 그런데 내 프로그램에서 저 메세지를 받으면
정말로 종료되는줄 알고 프로그램을 닫아버렸는데..
메모장같은데서 글자를 수정하고 저메세지를 받으면..
" 변경사항을 저장하시겠스니까?" 하고 물어보고
예, 아니오, 취소 버턴에서 취소를 누루면..
윈도우는 종료가 되지 않습니다 !!!
윈도우가 정말 죽는줄 알고 종료해버린 내 프로그램만 억울합니다..
어떻게 하면..다른프로그램도 다 죽고 윈도우가 마지막으로 종료루틴을
실행하는지 아닌지를 알수 있을까요????
예를 들면...
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageDlg('Exit now?',
mtConfirmation, [mbYes, mbNo], 0) = mrNo then CanClose := False;
end;
위처럼 해보세요. No를 누른경우 죽어도 종료되지 않습니다. ^^
이현신 wrote:
> 위도우 시작메뉴에서 윈도우 시스템 종료를 선택하게 되면
> 윈도우가 종료가 되면서 모든 응용 프로그램에
> WM_QUERYENDSESSION 메세지와 WM_ENDSESSION 가 날라간다고 알고
> 있습니다. 그런데 내 프로그램에서 저 메세지를 받으면
> 정말로 종료되는줄 알고 프로그램을 닫아버렸는데..
> 메모장같은데서 글자를 수정하고 저메세지를 받으면..
> " 변경사항을 저장하시겠스니까?" 하고 물어보고
> 예, 아니오, 취소 버턴에서 취소를 누루면..
> 윈도우는 종료가 되지 않습니다 !!!
> 윈도우가 정말 죽는줄 알고 종료해버린 내 프로그램만 억울합니다..
> 어떻게 하면..다른프로그램도 다 죽고 윈도우가 마지막으로 종료루틴을
> 실행하는지 아닌지를 알수 있을까요????
>