바탕화면을 내가 만든 폼의 작업영역 안으로 넣는 소스임.
폼의 크기를 화면크기만큼 하고, 캡션바를 없애면 바탕화면 그 자체로 보이기도 하겠지.
바탕화면 말고 다른 것들도 넣어짐. 여러모로 응용하면 좋을 듯한 소스.
1. 전역변수로 핸들 두개를 선언함.
var
orgHandle, curHandle: THandle;
2. FormCreate 할 때 바탕화면의 Parent 를 내 폼으로 설정.
procedure TForm1.FormCreate(Sender: TObject);
begin
curHandle:=FindWindow('Progman', nil);
curHandle:=FindWindowEx(curHandle, 0, 'SHELLDLL_DefView', nil);
orgHandle:=Windows.GetParent(curHandle);
Windows.SetParent(curHandle, Self.Handle);
end;
3. FormDestroy 시 깔끔하게 반환하고 물러나자.
procedure TForm1.Destroy(Sender: TObject);
begin
Windows.SetParent(curHandle, OrgHandle);
end;
'Delphi' 카테고리의 다른 글
[Delphi] 작업표시줄에 나타나지 않기 (0) | 2009.04.18 |
---|---|
[Delphi] 폼에 드래그 앤 드롭 구현하기 (0) | 2009.04.18 |
[Delphi] Zip 압축관련 Component (ZipMaster) (0) | 2009.04.18 |
[Delphi] 디렉토리 선택 Dialog 띄우기 (0) | 2009.04.18 |
[Delphi] 동적으로 COM Server 등록하기 (DLL, OCX) (0) | 2009.04.18 |