Q&A

  • 바탕화면에서 눈이 내리고, 그림들이 왔다갔다하는 것은 어떻게 만드나요?
안녕하세요..



간혹가다 어떤 프로그램을 실행시키면, 바탕화면에서 눈이 내리고, 그림들이 왔다갔다하는 것은 어떻게 만드나요?



바탕화면을 어떻게 제어하길래 그렇게 만들수가 있나요?



답변 부탁드립니다.



1  COMMENTS
  • Profile
    김영대 2000.10.19 15:52
    김진규 wrote:

    > 안녕하세요..

    >

    > 간혹가다 어떤 프로그램을 실행시키면, 바탕화면에서 눈이 내리고, 그림들이 왔다갔다하는 것은 어떻게 만드나요?

    >

    > 바탕화면을 어떻게 제어하길래 그렇게 만들수가 있나요?

    >

    > 답변 부탁드립니다.

    >



    안녕하십니까?



    델세상(http://www.freechal.com/delphiworld)의 컴맹 김영대입니다.



    아마두 두가지 방법이 있을겁니다.



    하나는 바탕화면을 캡쳐해서 가져오는 방법(마치 스크린세이버 처럼)...



    그리고 하나는 바탕화면의 기능까지 쓸수 있다면..



    그건 바탕화면의 핸들을 가져와서 하는 걸겁니다.



    두가지 방법중 좋은걸루 선택하시길 바랍니다.



    두번째 방법에 대해서는 소스가 다음과 같습니다.



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;



    type

    TForm1 = class(TForm)

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    private

    { Private declarations }

    H: HWND;

    oh: HWND;

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    H := FindWindow('Progman', nil);

    H := FindWindowEx(H, 0, 'SHELLDLL_DefView', nil);

    oh := Windows.GetParent(H);

    Windows.SetParent(H, self.Handle);

    end;



    procedure TForm1.FormDestroy(Sender: TObject);

    begin

    Windows.SetParent(H, oh);

    end;



    end.