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

VC 對話框設置背景圖片的簡潔實現

     編輯:關於VC++

核心思路

在 OnEraseBkgnd 中於客戶區平鋪繪製位圖,參考 MDI 客戶區背景繪製技巧。

完整代碼

BOOL CBmpbgDlg::OnEraseBkgnd(CDC* pDC) {
    CRect rect; GetClientRect(&rect);
    BITMAP bm; m_pBmp->GetObject(sizeof(BITMAP), &bm);
    CDC dcMem; dcMem.CreateCompatibleDC(NULL);
    CBitmap* pOld = dcMem.SelectObject(m_pBmp);
    for (int x = 0; x < rect.Width(); x += bm.bmWidth)
        for (int y = 0; y < rect.Height(); y += bm.bmHeight)
            pDC->BitBlt(x, y, bm.bmWidth, bm.bmHeight, &dcMem, 0, 0, SRCCOPY);
    dcMem.SelectObject(pOld);
    return TRUE; // 阻止默認背景擦除
}

m_pBmp 為 CBitmap* 成員,需在構造/初始化時載入位圖資源。效果良好,代碼極簡。

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