拷贝屏幕
BitBlt函数可以将一幅位图从一个设备场景拷贝到另一个设备场景,这个函数经常用在抓图程序和游戏编程方面,也可以用来做基于桌面的屏幕保护程序。下面让我们用BitBlt函数来做一个虚假桌面的程序:
首先,添加一个Image组件到窗体中,将窗体Form1的BorderStyle属性设为:bsNone。
接着在窗体的OnCreate事件加入程序代码:
Left=0;
Top=0;
Width=Screen->Width;
Height=Screen->Height;
Image1->Left=0;
Image1->Top=0;
Image1->Width=Screen->Width;
Image1->Height=Screen->Height;
//这句代码就是将桌面拷贝到组件Image1中来存放,
// 其中GetDC(0)返回桌面设备的句柄(HDC)
BitBlt(Image1->Canvas->Handle,0,0,Screen->Width,Screen->Height,GetDC(0),0,0,SRCCOPY);
按F9运行,一个假的桌面就出来了,在这个“桌面”上怎么按鼠标都没有反应,可以用来捉弄人喔!。有些桌面的小游戏也是这么干的,你可以在这个程序的基础上加上更多的功能,如在窗体上加上Label组件和Timer组件,用Timer组件来控制Label组件在窗体上移动,再在窗体Form1的OnKeyDown事件和Image1的OnMouseDown事件中加入关闭窗口的代码“Close();”,最后将编译了的程序的扩展名改为scr,这就成了一个文字在桌面上乱动的屏幕保护程序了。