반응형
procedure CreateParams(var params:TCreateParams); override; |
window class 속성에 보면 WndParent라는게 있습니다.
TForm 속성이 아니구요
WndParent 속성이 Application의 MainForm의 Handle로 되어있지 않고
DesktopWindow로 되어있는 경우 그렇게 나타납니다.
주로 dll에 Form이 포함되어잇는경우
Dll안에 Form들이 작업창에 나타나곤 하죠
[방법1]
TForm의 CreateParams 함수롤 오버라이드 해서
아래와 같이 Params에서 WndParnet를 메인윈도우핸들로 설정해주면 됩니다.
procedure TForm2.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); // Params.WndParent:=Application.MainForm.Handle; //==> Form이 TaskBar에 나타나지 않게 할때 // Params.WndParent:=GetDesktopWindow; //==> Form이 TaskBar에 나타나게 할때 end; |
//------------------------------------------------------------------
[방법2]
윈리는 같은데요
hMain:=FindWindow('TForm1', nil); SetWindowLong(Form2.Handle, GWL_HWNDPARENT,(LPARAM)hMain); //==> Form이 TaskBar에 나타나지 않게 할때 SetWindowLong(Form2.Handle, GWL_HWNDPARENT,GetDesktopWindow; //==> Form이 TaskBar에 나타나게 할때 |
위와같이 SetWindowLong 함수로
현재 윈도우 핸들의 WndParent를 바꿔주시면 됩니다.
참고 Dll에서 Application.MainForm.Handle을 exe의 Application.MainForm.Handle과 다를수 있습니다.
반응형
'Programming > Delphi' 카테고리의 다른 글
COM+ 만드는 방법 (0) | 2010.06.30 |
---|---|
프로그램 화면을 이미지로 저장하기 (0) | 2010.06.30 |
Access violation 난 곳 찾기 (0) | 2010.06.30 |
웹브라우저 POST로 호출하기 (0) | 2010.06.30 |
윈도우 종료 5가지 방법 (0) | 2010.06.30 |