请大家指教,iec翻译Delphi->bcb
TForm1 *Form1;
TCanvas *ScreenCanvas;
Graphics::TBitmap *MaskMap,*Copy_NOT_OR;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Count=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//TImage *DogImage;
Timer1->Interval=400;
switch(Count)
{
case 0:
DogImage->Picture=Image1->Picture;
break;
case 1:
DogImage->Picture=Image2->Picture;
break;
case 2:
DogImage->Picture=Image3->Picture;
break;
case 3:
DogImage->Picture=Image4->Picture;
break;
// default:
// DogImage->Picture=Image4->Picture;
// break;
}
Count++;
MaskMap= new Graphics::TBitmap();
Copy_NOT_OR= new Graphics::TBitmap();
MaskMap->Width=w;
MaskMap->Height=h;
Copy_NOT_OR->Width=w;
Copy_NOT_OR->Height=h;
BitBlt(MaskMap->Canvas->Handle,0,0,w,h,DogImage->Canvas->Handle,0,0,SRCCOPY);//
MaskMap->Mask(0xFFFFFF);
BitBlt(Copy_NOT_OR->Canvas->Handle,0,0,w,h,DogImage->Canvas->Handle,0,0,SRCCOPY);
try
{
if (Count>0 )
RefreshRect();
ScreenCanvas->Handle=GetDC(0);
//MaskMap与背景图像作And运算
// 背景图像:小狗轮廓外是背景本身图像(透明!),轮廓内全是黑色}
BitBlt(ScreenCanvas->Handle,x,y,w,h,MaskMap->Canvas->Handle,0,0,SRCAND);
// {MaskMap与Copy_NOT_OR作取反运算
// Copy_NOT_OR:小狗轮廓外是黑色的,轮廓内是小狗本来图像}
BitBlt(Copy_NOT_OR->Canvas->Handle,0,0,w,h,MaskMap->Canvas->Handle,0,0,SRCINVERT);
// {Copy_NOT_OR与背景图像作OR运算
// 背景图像:小狗轮廓外是透明的,轮廓内是小狗本来图像}
BitBlt(ScreenCanvas->Handle,x,y,w,h,Copy_NOT_OR->Canvas->Handle,0,0,SRCPAINT);
ReleaseDC(0,ScreenCanvas->Handle);
}
__finally
{
MaskMap->Free();
Copy_NOT_OR->Free();
}
if(Count==4 )
{
Count=0;
Timer1->Enabled=false;
Timer1->Interval=1000;
Sleep(400);
Timer2->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ScreenCanvas=new TCanvas();
x=Screen->Width/2;
y=Screen->Height/2;
Form1->Width=80;
Form1->Height=25;
Form1->Top=0;
Form1->Left=Screen->Width-80;
SetWindowLong(Application->Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RefreshRect()
{
TRect Rect;
Rect.Left=x-200;
Rect.Top=y-200;
Rect.Right=x+200;
Rect.Bottom=y+200;
RedrawWindow(0,&Rect,0,RDW_ERASE||RDW_VALIDATE || RDW_INTERNALPAINT || RDW_ERASENOW || RDW_ALLCHILDREN);
Sleep(100); //若不延时,将不能刷新局部屏幕
//TODO: Add your source code here
}
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
RefreshRect();
//定义当前位置(随便)
Randomize;
x=x+50-random(100);
y=y+50-random(100);
if ((x>Screen->Width-40)||(x<=10))
x=Screen->Width/2;
if ((y>Screen->Height-40)||(y<=10))
y=Screen->Height/2;
Timer2->Enabled=false;
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
RefreshRect();
ScreenCanvas->Free();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------
相关知识
C#桌面宠物金鱼源代码资源
【免费】C#桌面宠物(17种宠物)源代码.RAR资源
仿宠物企鹅源码codesky.net VB版桌面宠物源代码
利用python写个桌面挂件,带大家做只桌面宠物
基于C#制作一个桌面宠物
c#语言实现的桌面宠物资源
桌面宠物,3只可爱的小猫
大家来领养自己的桌面宠物,不收费哦
互动桌面宠物手游下载
qq宠物怎么在桌面玩啊?
网址: 公布桌面宠物源代码,大家来看啊 https://m.mcbbbk.com/newsview661450.html
上一篇: 三只松鼠(300783)股吧 |
下一篇: 我滴宠物 |