C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[44370] Re:프로그램 종료
신원진.키란디아 [kyrandia] 1167 읽음    2006-04-04 11:53
SYS_COMMAND 메시지 가로채시면 됩니다.

헤더에

private:    // User declarations
  void __fastcall WndProc(Messages::TMessage &Msg);


메인프로그램에

전역변수
bool bClose;

버튼1 클릭부분 아래와 같이 수정

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        int k=0;
        while(k<50)
        {
            this->Label1->Caption=k;
            k++;
            Sleep(100);
            Application->ProcessMessages();
            if (bClose == true) {
              break;
              Form1->Close();
            }
        }
}

아래 새로 추가
void __fastcall TForm1::WndProc(Messages::TMessage &Msg)
{
  switch(Msg.Msg)
  {
   case WM_SYSCOMMAND:
    if(Msg.WParam==SC_CLOSE);
    {
      bClose = true;
      TForm::WndProc(Msg);
      //return;
    }
   default:
    TForm::WndProc(Msg);
  }
}


작동테스트 하고 올립니다만 빌더가 주력이 아니라 문법상 잘못된 부분이 있을지 모르겠습니다.
WM_CLOSE 같은 메시지도 CASE 문에서 처리하면 작동합니다.




김도훈 님이 쓰신 글 :
: 프로그램이 돌다가 강제로 죽이는 걸 해보려고 합니다.
: 그래서 연습 삼아 이렇게 해봤는데....

: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:         int k=0;
:         while(k<50)
:         {
:                 this->Label1->Caption=k;
:                 k++;
:                 Sleep(100);
:                 Application->ProcessMessages();
:         }
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
:         PostMessage(Handle,WM_QUIT,0,0);
:
: }
:
: 루프가 끝날때 까지 프로그램이 끝나질 않는 군요...
: 제가 원래 하려는거 윈도우 창 오른쪽 위의 'x' 즉 종료를 누르면 그순간 프로그램이 끝나게 하도록 하고 싶습니다.
: 쓰레드를 사용 하지 않으면 안되는 건가요?
: 그리고 'x' 를 눌렀을때의 이벤트는 무엇인가요?

+ -

관련 글 리스트
44369 프로그램 종료 김도훈 1056 2006/04/04
44370     Re:프로그램 종료 신원진.키란디아 1167 2006/04/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.