|
윈도우를 종료시켰을때.. 일반 프로그램들은 종료되면서 윈도우가 종료되게 됩니다.
이럴경우에는 자신의 프로그램에서도 윈도우의 종료메세지를 받아서 처리하게 된다고 알고 있습니다.
그래서 아래와 같이 종료메세지들을 찾아서 첨부해 줬는데..
일반적인 경우에는 정상적으로 종료가 잘 됩니다.
하지만 폼에 UDP를 쓰기위해서 NMUDP 컴퍼넌트를 하나 사용한 뒤에는 종료가 되지 않고 있습니다.
문제는 프로그램은 종료했습니다. 그런데 윈도우가 종료하지 않습니다.
그래서 다시한번 윈도우를 종료하면 되긴하는데.. 원천적으로 이문제를 해결할수 있는 방법이 없는지요.
아니면 추가적인 다른 코드가 필요할까요 ?
void __fastcall WMQueryEndSession(Messages::TMessage &Msg);
void __fastcall WMEndSession(Messages::TMessage &Msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_QUERYENDSESSION,TMessage,WMQueryEndSession);
MESSAGE_HANDLER(WM_ENDSESSION,TMessage,WMEndSession);
END_MESSAGE_MAP(TForm);
void __fastcall Tfrm_ShutDown::WMQueryEndSession(TMessage &Msg)
{
Msg.Result=1; //종료 가능 ,
//종료하지 못하게 하려면 Msg.Result=0;
}
//---------------------------------------------------------------------------
//Windows 운영체제가 종료
void __fastcall Tfrm_ShutDown::WMEndSession(TMessage &Msg)
{
if(Msg.WParam==true) {
//Windows 운영체제 종료 시 처리할 작업 수행
}
Msg.Result=0;
}
|