바탕화면을 내가 만든 폼의 작업영역 안으로 넣는 소스임.

폼의 크기를 화면크기만큼 하고, 캡션바를 없애면 바탕화면 그 자체로 보이기도 하겠지.

바탕화면 말고 다른 것들도 넣어짐. 여러모로 응용하면 좋을 듯한 소스.

 

 

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;









Posted by bloodguy
,