关于为对话框添加背景图片LoadBitmap的问题:
首先要为对话框添加消息映射,主要是:
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
ON_WM_ERASEBKGND()//背景图片
END_MESSAGE_MAP()
然后在相关代码区域添加代码:
//设置TOOLDLG的背景色,添加背景图片。[lei]
BOOL CToolDlg::OnEraseBkgnd(CDC* pDC)
{
/*****************************************************
要设置背景图片,必须去掉背景色,否则图片会被背景色覆盖。
*****************************************************/
/*
//[lei]不使用背景图片时启用,否则失效。START
//背景色
BOOL retValue= CDialog::OnEraseBkgnd(pDC);
CRect rc;
GetClientRect(&rc);
pDC->FillSolidRect(&rc,RGB(m_ToolRedVal,m_ToolGreenVal,m_ToolBlueVal));
return retValue;
//[lei]不使用背景图片时启用,否则失效。END
*/
//背景图片
//获得客户区尺寸
CRect rect;
GetClientRect(&rect);
//加载背景位图
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP_TOP_BG); //图片ID
//创建内存DC
CDC dc;
dc.CreateCompatibleDC(pDC);
//选择位图
CBitmap* pOldBitmap=dc.SelectObject(&bitmap);
//绘制位图
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);
//恢复原有位图
dc.SelectObject(pOldBitmap);
return TRUE;
}