Q&A

  • 윈도 프로그램에서 alt+f4 를 누를때....
개발 하는 프로그램은... 트레이 아이콘을 이용해서 실행이 되고 있다가
아이콘을 클릭하면 화면에 폼이 보여 지는 건데요...

생성된 폼에서 오른쪽 상단의 X 버튼을 누르면 폼만 close 가 되며
트레이 아이콘은 그대로 있는데요..

폼이  엑티브 된 상태에서 alt+F4 키를 누르게 되면 트레이 아이콘까지
한꺼번에 종료가 되어 집니다....

해결방법을 생각해 봤는데요... 프로그램이 실행이 될때 작업표시줄에
안나오게 하는 방법은 없을까요?
아니면 다른 방법이 있을까요??
2  COMMENTS
  • Profile
    김수경 2003.05.01 05:46
    TForm Method중 FormCloseQuery()를 이용하세요.

    두개의 Paramter중 CanClose가 Method 종료시 true가

    되면 Form을 Close합니다.

    즉, 일반적으론 false가 되도록 처리하다가

    Tray에서 Memu 선택(종료)시엔 true로 종료하도록 만들면 되겠죠!

    물론 전역 변수나 Form Class 변수등을 활용하시구요....

    즐푸하세요 ^^;


  • Profile
    한원희 2003.05.01 01:31
    안녕하세요. 한원희입니다.

    Window가 닫히려고 할 때(캡션의 X 버튼, 시스템 메뉴의 닫기 메뉴, Alt+F4 단축키) WM_SYSCOMMAND 메시지가 날라옵니다. 이걸 가로채서 윈도우를 종료하는 동작을 숨기는 동작으로 바꿔주면 됩니다.

    아래 예제입니다.

    TForm1=class(TForm)

    private
      procedure ONWM_SYSCOMMAND(var Msg:TMessage); message WM_SYSCOMMAND;

      ...
    end;

    procedure TForm1.ONWM_SYSCOMMAND(var Msg:TMessage); message WM_SYSCOMMAND;
    begin
       if Msg.wParam=SC_CLOSE then
          Hide
       else
          Inherited;
    end;

    이렇게 처리하시면, 캡션의 X 버튼, 시스템 메뉴의 닫기 메뉴, Alt+F4 단축키를 이용한 닫기시에 화면에서 사라지기만 합니다.

    그럼, 즐푸~