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

改變 MFC 視圖單調背景:自訂圖片填充完整教學

     編輯:關於VC++

VC++ 產生的預設視圖背景單調乏味。本文教導如何以自訂圖片美化視圖背景,適合初學者快速上手。

實作步驟

1. 準備資源

  • 準備一張 BMP 格式圖片
  • 資源編輯器 Import 匯入,資源 ID 設為 IDB_BITMAP
  • 超過 16 色會提示無法顯示,不影響執行結果

2. 視圖類別新增成員變數


class CTestView : public CView {
    CBrush m_brushBackground;  // 背景畫刷
    // ...
};

3. 建構函式建立圖案畫刷


CTestView::CTestView() {
    CBitmap bmp;
    bmp.LoadBitmap(IDB_BITMAP);           // 載入點陣圖
    m_brushBackground.CreatePatternBrush(&bmp); // 建立圖案畫刷
}

4. OnDraw 繪製背景


void CTestView::OnDraw(CDC* pDC) {
    CRect rect;
    GetClientRect(&rect);                 // 取得客戶區矩形
    pDC->FillRect(&rect, &m_brushBackground); // 畫刷填充
    // 其他繪圖代碼...
}

5. 消除背景閃爍


BOOL CTestView::OnEraseBkgnd(CDC* pDC) {
    return TRUE;  // 禁止預設背景擦除,由 OnDraw 統一繪製
}

執行效果

編譯執行後,視圖背景呈現自訂圖片紋理,視覺效果大幅提升。

原理解析

  • CreatePatternBrush 以點陣圖建立畫刷,FillRect 自動平鋪填充。
  • 覆寫 OnEraseBkgnd 回傳 TRUE 告訴系統「背景已處理」,避免系統先擦除再繪製造成閃爍。
  • 同樣技巧適用於對話方塊、控制項等視窗類別。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved