打印本文 打印本文 关闭窗口 关闭窗口
浅析桌面精灵的实现
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3808  更新时间:2009/4/23 18:40:51  文章录入:mintao  责任编辑:mintao
    Timer1: TTimer;//爆炸定时器


    Image1: TImage;//储存爆炸的图片


    Image2: TImage;//储存飞行器的图片


    procedure Timer1Timer(Sender: TObject);


    procedure FormCreate(Sender: TObject);


    procedure FormClose(Sender: TObject; var Action: TCloseAction);


  private


    { Private declarations }


    DeskTopDC:HDC;//桌面窗口的图形设备描述表句柄


    stop:boolean;//控制循环的变量


    expnum:integer;//爆炸的当前次数


    procedure Explode(X:integer;Y:integer);//爆炸函数


    procedure shipmove(X:integer;Y:integer);//飞行器函数


  public


    { Public declarations }


  end;


 


var


  Form1: TForm1;


 


implementation


 


{$R *.DFM}


 


//保存桌面背景


procedure savebackground(BKCanvas :TCanvas;


                        sp_w:integer;


                        sp_h :integer ;


                        nx:integer;


                        ny:integer);


var sc:TCanvas;


begin


  sc:=TCanvas.Create;


  try


    sc.Handle:=GetDC(0);


    bkcanvas.CopyRect( rect(0,0,sp_w, sp_h), sc,rect(nx, ny, nx+sp_w, ny+sp_h));


    ReleaseDC(0, sc.handle);


  finally


    sc.free;


  end;


end;


 


//透明拷贝图像函数


//静态调用API函数TransparentBlt


procedure tranbit(hdcDest:HDC;


                    nXOriginDest:integer;


                    nYOriginDest:integer;


                    nWidthDest:integer;


                    hHeightDest:integer;


                    hdcSrc:HDC;


                    nXOriginSrc:integer;


                    nYOriginSrc:integer;


                    nWidthSrc:integer;


                    nHeightSrc:integer;


                    crTransparent:UINT) ;


Var


    LibHandle:HWND;//动态连接库句柄


    //函数原型定义


    DllName:Procedure(hdcDest:HDC;


                    nXOriginDest:integer;


                    nYOriginDest:integer;


                    nWidthDest:integer;


                    hHeightDest:integer;


                    hdcSrc:HDC;


                    nXOriginSrc:integer;


                    nYOriginSrc:integer;


                    nWidthSrc:integer;


                    nHeightSrc:integer;


                    crTransparent:UINT);Stdcall;


begin


    //以下是静态调用dll中函数的例行公事


    LibHandle:=LoadLibrary(''''msimg32.dll'''');


    if LibHandle<32 then


    begin


        MessageBox(Form1.Handle,''''Not Found msimg32.dll'''',''''Error'''',0);


        Exit;


上一页  [1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口