다시한번 강조합니다만
Application->Handle이 하나의 윈도우(Form)이라는것을 꼭 기억하십시요
VCL의 TCustomForm이나 TForm을 상속받은 윈도우는 아니기 때문에
다른 폼과 같이 동작은 하지 않습니다만
Application->Handle도 하나의 윈도우로써 Win32 API는 똑같이 적용됩니다.
다음 팁을 꼭 읽어보십시요
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=602
그리고 님이 올려주신 소스를 약간 수정하였습니다.
참고 하시구요
제가 수정한 소스에서도 프로그램 종료에 관해서 여전히 문제가 있습니다.
그 문제는 스스로 해결해 보십시요
그럼
나그네 님이 쓰신 글 :
: 메인 폼을 아무리 HIde 시켜도.
: 작업 표시줄의 그 프로젝트(Project1) 아이콘은 그대로 네요..(새창 개념 없을때는 창이 숨겨지면서 아이콘도 모두 사라집니다. 그러나 새창이란걸 하나 뛰울때는 안 없어지네요 ㅠㅠ)
:
: 스샷하고 소스 파일 첨부합니다.
: (소스는 두가지인데요 첫번째꺼는 버튼1을 누르면 자기자신을 새창으로 뛰웁니다. 그리고 버튼2를 누르면 메인창이 사라집니다. 메인창 아이콘이 없어지는데 'Project1' 이거는 안 없어지더군요..
: 두번째소스는 전혀 다른 폼을 새창으로 뛰웁니다. 기능 동일하고요.(버튼은 메인창에만 있음) Project1 아이콘 안없어지는거 동일합니다.)
:
: 장성호 님이 쓰신 글 :
: : 링크해놓은 글을 잘 읽어보면
: : 맨 아랫쪽에 님이 얘기하신 현상에 대해 얘기하고 있습니다.
: :
: : 간단히 원인은
: : VCL에서는 Application->Handle이 하나의 윈도우입니다.
: : 그리고 TCustomForm을 상속받은 모든 폼은
: : Application->Handle을 기본적으로 WndParent로 가지게 되구요..
: :
: :
: : 해결방법은
: :
: : 방법1
: : 첫번째 생성되는 폼에서는 작업표시줄에 생성되도록 하지 않는다.
: :
: :
: : 방법2
: : Application->Handle이 하나의 윈도우이므로
: : 이윈도우(Application->Handle)를 Hide시켜버린다.
: :
: :
: : 방법3.
: : 맨 먼저 생성되는 메인폼(Application->MainForm)을 Hide시켜 버리고
: : sub-form만으로 작업한다.
: :
: :
: :
: : 방법2가 님께서 원하시는것에 가장 가까울지 모르겠는데..
: : Application->Handle 과 Application->MainForm은 매우 긴밀한 관계가 있습니다.
: : WM_SYSCOMMAND의 SC_MINIMIZE , SC_MAXIMIZED , SC_RESOTRE.. 등이 서로 연동되게 되어있습니다.
: :
: : C++Builder2006 이상에서는 메인폼이 TaskBar에 나타나도록 하는 방법이 VCL차원에서 제공되지만
: : 그 이하 버젼의 VCL(C++Builder 또는 Delphi)에서는 그렇게 하려면 WM_SYSCOMMAND 처리를 또 잘 해줘야 합니다.
: : 연동되는 것을 끊으줘야죠..
: :
: : 그러니 그냥 방법3이 편할듯 하네요...
: :
: : 그럼..
: :
: :
: :
: : 나그네 님이 쓰신 글 :
: : : 질문을 더 올립니다.
: : : 참고 URL대로 해서 아래 작업 표시줄에 여러개 뜨게 하는건 됬으나..
: : : 자기 자신에게 적용하니.. 처음 실행할때
: : : 작업 표시줄 아이콘이 두개가 뜨네요.
: : : 즉, 프로젝트 이름을 A라고 가정하고 창 이름을 B라고 가정하면
: : : 처음 실행할때 작업 표시줄에
: : : [ A ][ B ]
: : : 이렇게 됩니다. 여기서 자기자신(B)를 새창으로 열면
: : : [ A ][ B ][ B ]
: : : 이렇게 되고요
: : : 여기서 A부분을 안보이게 하거나 없앨 수 없나요?
: : :
: : :
: : : 장성호 님이 쓰신 글 :
: : : : 참고하세요
: : : :
: : : :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=18
: : : :
: : : : 나그네 님이 쓰신 글 :
: : : : : 다음과 같이 새창을 뛰울때..
: : : : : 작업표시줄에 아이콘이 추가로 생기지 않는데.. 왜 그런건가요?
: : : : : 창을 새로 열때마다. 작업표시줄에 아이콘을 계속 추가되게 할 순 없나요?
: : : : :
: : : : :
: : : : : TForm2 *frm = new TForm2(this);
: : : : : frm->Show();
: : : : :