關(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;
}
首先要為對(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;
}