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

自繪位圖進度條控件 CBmpProgCtrl

     編輯:關於VC++

設計概念

參考遊戲更新介面,使用前景/背景兩張位圖繪製進度條。繼承 CStatic,介面模仿 CProgressCtrl:

void SetRange(int nLower, int nUpper);
void GetRange(int& lower, int& upper);
int  SetPos(int nPos);
int  GetPos();
int  SetStep(int nStep);
int  StepIt();

使用步驟

  1. 將 BmpProgCtrl.h/.cpp 加入專案。
  2. 匯入兩張位圖資源:前景 IDB_FORE、背景 IDB_BACK。
  3. 對話框放置 Static 控件,修改 ID(如 IDC_BMPPROG),關聯變數 m_bmpProg。
  4. 將變數型別從 CStatic 改為 CBmpProgCtrl,含入標頭檔。
  5. 初始化:m_bmpProg.SetRange(0, 100); m_bmpProg.SetStep(1);
  6. 更新:m_bmpProg.StepIt(); 或 m_bmpProg.SetPos(val);

核心繪製邏輯 (OnPaint)

  • 背景圖完整繪製。
  • 依當前進度計算前景圖寬度 w = (pos - min) * foreWidth / (max - min)。
  • 以 BitBlt 或 StretchBlt 繪製前景圖左半部覆蓋背景。

原始碼簡潔易改,可擴展為垂直進度條、圓形進度條或加入動畫效果。

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