1新建一个基于对话框的MFC工程。在resource view选项卡中bitmap中加入需要的背景图片。为IB_BMPSKY
2 在on
BOOL CSteinbergDlg::On
{
CDialog::On
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
.................................
..............................
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
CBitmap bmp;
bmp.LoadBitmap(IDB_BMPSKY);
m_brush.CreatePatternBrush(&bmp);//
.....................
return TRUE;
}
BOOL CRelformDlg::OnEraseBkgnd(CDC* pDC){
// TODO: 在此添加消息处理程序代码和/或调用默认值
CBitmap m_back,*pOldBitmap;/
BITMAP bm;/
m_back.LoadBitmap(IDB_BMPSKY);//
CDC dc;/
dc.CreateCompatibleDC(pDC);
pOldBitmap=(CBitmap *)dc.SelectObject(&m_back);///
m_back.GetBitmap(&bm);///
CRect rt;/
GetClientRect(&rt);
pDC->StretchBlt(0,0,rt.Width(),rt.Height(),&dc,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);///
return CDialog::OnEraseBkgnd(pDC);
}
HBRUSH CRelformDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(HOLLOW_BRUSH);//设置背景刷子为空2/
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
//return hbr;
// return (HBRUSH)m_brush;
}