国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用BCB3.0制作桌面動畫

2019-11-17 05:30:02
字體:
來源:轉載
供稿:網友

  大家好。記得以前玩過一些桌面寵物類的小游戲,比如說:一只小貓在桌面上不停的追逐鼠標等等。當時我剛開始學Windows的編程,曾經對這類程序為什么能在桌面上直接作動畫感到百思不得其解。下面我們就來談談制作桌面動畫的原理。其實說穿了很簡單:就是先預備幾張連續的圖片,然后在桌面上建一個外形不規則的窗口(窗口具體是什么外形要由顯示什么樣的動畫來決定),然后一邊移動窗口,一邊給窗口更換圖片就行了。是不是很簡單。下面就用BCB來做一個例子:

打開BCB,新建一個標準工程。
在Form1中添加一個名為Timer1的Timer控件。
在Unit1.h中添加以下代碼:
#include "winuser.h"
#include "wingdi.h"
然后在Form1的OnCreate事件中添加以下代碼:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
BorderStyle=bsNone;
Timer1->Enabled=false;
Timer1->Interval=150;
SetWindowRgn(Form1->Handle,CreateEllipticRgn(0,0,80,80),true);//做一個圓形的窗口
}
在Form1的OnPaint事件中添加以下代碼:
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Canvas->Pen->Width=1;
Canvas->Pen->Style=psSolid;
Canvas->Pen->Color=clRed;
Canvas->Brush->Color=clRed;
Canvas->Ellipse(0,0,79,79);//在窗口中畫一個圓形
}
在Form1的OnMouseDown事件中添加以下代碼:
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)//點鼠標左鍵就開始移動
Timer1->Enabled=true;
if(Button==mbRight)//點鼠標右鍵就退出
Close();
}
在Timer1的OnTimer事件中添加以下代碼:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(Form1->Top>=1)
Form1->Top=Form1->Top-2;
else
Timer1->Enabled=false;
}

現在保存并編譯它,然后執行,你就會看到一個圓形在桌面上向上移動。這里因為篇幅所限,所以給出的例子比較簡單。不過桌面動畫的實現原理已經說的很清楚了。
以上程序在BCB3.0+Win97中編譯通過。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安陆市| 彩票| 同心县| 班玛县| 资溪县| 湖北省| 瓦房店市| 百色市| 明溪县| 察雅县| 固原市| 永靖县| 佛教| 治县。| 富源县| 屏山县| 芜湖县| 大化| 潮州市| 邵东县| 鄂托克前旗| 泰安市| 墨玉县| 星子县| 高密市| 汝南县| 炎陵县| 治县。| 锡林浩特市| 陈巴尔虎旗| 浙江省| 方山县| 香港 | 南京市| 琼结县| 永登县| 霞浦县| 溆浦县| 隆德县| 昌平区| 永济市|