vc 背景添加

来源:互联网 发布:网络知识培训 编辑:程序博客网 时间:2024/06/05 17:32

1新建一个基于对话框的MFC工程。在resource view选项卡中bitmap中加入需要的背景图片。为IB_BMPSKY

2 在oninitdialog函数中添加:

BOOL CSteinbergDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 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;
}

 

 

原创粉丝点击