首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

BCB 3.0 製作桌面動畫精靈:不規則視窗加定時器移動

     編輯:VC 教學

實作原理

桌面動畫本質是:建立一個不規則形狀視窗(如圓形),在 Timer 事件中不斷移動視窗位置,並切換顯示的圖片序列,即可形成動畫效果。

完整範例步驟

  1. 新建標準專案,於 Form1 放置 Timer1。
  2. 在 Unit1.h 包含 winuser.h、wingdi.h。
  3. FormCreate 設定無邊框、建立橢圓區域:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    BorderStyle = bsNone;
    Timer1->Enabled = false;
    Timer1->Interval = 150;
    SetWindowRgn(Form1->Handle, CreateEllipticRgn(0, 0, 80, 80), true);
}
  1. FormPaint 繪製圓形圖案:
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);
}
  1. FormMouseDown 控制動畫啟停:
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
    TShiftState Shift, int X, int Y)
{
    if (Button == mbLeft) Timer1->Enabled = true;  // 左鍵開始
    if (Button == mbRight) Close();                // 右鍵結束
}
  1. Timer1Timer 向上移動視窗:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    if (Form1->Top >= 1) Form1->Top -= 2;
    else Timer1->Enabled = false;
}

編譯執行後,桌面上會出現一個紅色圓形向上移動。此為基礎範例,實際專案可擴充圖片切換、路徑規劃等功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved