為對(duì)話框添加背景圖片LoadBitmap

字號(hào):

關(guān)于為對(duì)話框添加背景圖片LoadBitmap的問(wèn)題:
    首先要為對(duì)話框添加消息映射,主要是:
    BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
    ON_WM_ERASEBKGND()//背景圖片
    END_MESSAGE_MAP()
    然后在相關(guān)代碼區(qū)域添加代碼:
    //設(shè)置TOOLDLG的背景色,添加背景圖片。[lei]
    BOOL CToolDlg::OnEraseBkgnd(CDC* pDC)
    {
    /*****************************************************
    要設(shè)置背景圖片,必須去掉背景色,否則圖片會(huì)被背景色覆蓋。
    *****************************************************/
    /*
    //[lei]不使用背景圖片時(shí)啟用,否則失效。START
    //背景色
    BOOL retValue= CDialog::OnEraseBkgnd(pDC);
    CRect rc;
    GetClientRect(&rc);
    pDC->FillSolidRect(&rc,RGB(m_ToolRedVal,m_ToolGreenVal,m_ToolBlueVal));
    return retValue;
    //[lei]不使用背景圖片時(shí)啟用,否則失效。END
    */
    //背景圖片
    //獲得客戶區(qū)尺寸
    CRect rect;
    GetClientRect(&rect);
    //加載背景位圖
    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP__BG); //圖片ID
    //創(chuàng)建內(nèi)存DC
    CDC dc;
    dc.CreateCompatibleDC(pDC);
    //選擇位圖
    CBitmap* pOldBitmap=dc.SelectObject(&bitmap);
    //繪制位圖
    pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);
    //恢復(fù)原有位圖
    dc.SelectObject(pOldBitmap);
    return TRUE;
    }