设置对话框的背景图片

BOOL CBDialog::OnEraseBkgnd(CDC* pDC)
{
 CDialog::OnEraseBkgnd(pDC); 
 if(!m_bitmap.m_hObject)
  return true;
 
 CRect rect;
 GetClientRect(&rect);
 CDC dc;
 dc.CreateCompatibleDC(pDC);
 CBitmap* pOldBitmap = dc.SelectObject(&m_bitmap);
 int bmw, bmh ;
 BITMAP bmap;
 m_bitmap.GetBitmap(&bmap);
 bmw = bmap.bmWidth;
 bmh = bmap.bmHeight;
 int xo=0, yo=0;

 if(m_style == StyleTile)//平铺
 {
  for (yo = 0; yo < rect.Height(); yo += bmh)
  {
   for (xo = 0; xo < rect.Width(); xo += bmw)
   {
    pDC->BitBlt (xo, yo, rect.Width(),
     rect.Height(), &dc,
     0, 0, SRCCOPY);
   }
  }

 }

 if(m_style == StyleCenter) //居中
 {
  if(bmw < rect.Width())
   xo = (rect.Width() - bmw)/2;
  else
   xo=0;
  if(bmh < rect.Height())
   yo = (rect.Height()-bmh)/2;
  else
   yo=0;
  pDC->BitBlt (xo, yo, rect.Width(),
   rect.Height(), &dc,
   0, 0, SRCCOPY);
 }

 if(m_style == StyleStretch)//拉伸
 {
  pDC->StretchBlt(xo, yo, rect.Width(),
   rect.Height(), &dc,
   0, 0,bmw,bmh, SRCCOPY);
 }

 
 dc.SelectObject(pOldBitmap);


 return true;
}

void CBDialog::SetBitmapStyle(int style)
{
 if((style==StyleTile)||
  (style==StyleCenter)||
  (style==StyleStretch))
 { 
  m_style = style;
 }

}

int CBDialog::SetBitmap(UINT nIDResource)
{
 if(m_bitmap.LoadBitmap(nIDResource))
  return 0;
 else
  return 1;//error
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值