|
안녕 하세요?
BacTeria 박종민 입니다. 지나가다 잠시 끼적거립니다.
델파이의 경우엔
ShowWindow(Application.Handle, SW_HIDE);
이렇게 해주면 태스크 바에서 싸악~ 하고 사라집니다.
참고하세요~
유지상 님이 쓰신 글 :
: 테스크바에 버튼 안 생기게 하는 방법을 MSDN에서 조사해보았더니,
: "어떤 보이지 않는 윈도우를 WS_EX_TOOLWINDOW 스타일을 주고, 어떤 다이얼로그박스를 만들면서
: WS_EX_APPWINDOW속성을 해재하고, 이 때 보이지 않는 윈도우에 own되게 하라"
: 가 방법인거 같아서,
: 아래와 같이 소스를 짜봤습니다.
:
: ***** 아래는 Unit1의 소스 ******
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
: long ex_style = GetWindowLong(Handle,GWL_EXSTYLE);
: ex_style |= WS_EX_TOOLWINDOW;
: SetWindowLong(Handle,GWL_EXSTYLE,ex_style);
:
: TForm2* he = new TForm2(this);
: he->Show();
: }
:
: ******* 그리고 아래는 Unit2의 소스입니다.TForm2에는 버튼이 딱 두개가 있지요.
: TForm2 *Form2;
: //---------------------------------------------------------------------------
: __fastcall TForm2::TForm2(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm2::btnShowClick(TObject *Sender)
: {
: Form1->Show();
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm2::btnHideClick(TObject *Sender)
: {
: Form1->Hide();
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm2::FormCreate(TObject *Sender)
: {
: long ex_style = GetWindowLong(Handle,GWL_EXSTYLE);
: ex_style &= !(WS_EX_APPWINDOW);
: SetWindowLong(Handle,GWL_EXSTYLE,ex_style);
: }
: //-----------
:
: 그래서, 이렇게 짜놓고, 실행시키면, TForm1과 TForm2 이렇게 폼이 두 개가 생성되거든요,
: 거기서 TForm2에서 버튼 btnHide를 눌러서 TForm1에 해당하는 폼을 안보이게 했씁니다.
: 그러면, TForm2만이 보이는 상태가 되는데, 이렇게하면, taskbar에서 버튼이 사라질 것이라고 기대했는데, taskbar에서 버튼이 그대로 남아있었어요.
: 어떤 소스를 더 추가해야 taskbar에서 사라지게 할 수 있는거죠?
|