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

VC 對話框實作動態圓形動畫

     編輯:關於VC++

步驟概覽

  1. 新建對話式專案,刪除靜態文字,將「確定」改為「顏色」按鈕。
  2. 類別精靈加入訊息對應:OnExitButton、OnDestroy、OnTimer、OnDrawButton。
  3. 表頭宣告 int m_Radius, m_direction;。
  4. OnInitDialog 設定定時器(50ms)、初始半徑 50、方向 1、啟動顏色對話框預設值。
  5. OnTimer 更新半徑(10~100 間往復)、呼叫 Invalidate 觸發重繪。
  6. OnPaint 使用 CPen 繪製橢圓,顏色由顏色對話框決定。
  7. OnDestroy 關閉定時器。

關鍵程式碼

// OnInitDialog
SetTimer(1, 50, NULL);
m_Radius = 50; m_direction = 1;

// OnTimer
m_Radius += m_direction;
if (m_Radius >= 100) m_direction = -1;
if (m_Radius <= 10) m_direction = 1;
Invalidate();

// OnPaint
CPaintDC dc(this);
CPen pen(PS_SOLID, 10, dlg.m_color); // 寬度 10
CPen* pOld = dc.SelectObject(&pen);
CRect rc(30, 10, 20 + m_Radius*2, 10 + m_Radius*2);
dc.Ellipse(&rc);
dc.SelectObject(pOld);

擴充建議

  • 加入雙緩衝(CMemDC)消除閃爍。
  • 支援多個圓形、不同軌跡、物理碰撞模擬。
  • 使用 GDI+ 實現漸層、抗鋸齒效果。

本範例展示 MFC 定時器驅動動畫的基本模式,適合初學者理解訊息迴繪圖流程。

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