UsePngDrawBK图片做背景

 头文件

CPng2Rgb32Dib *m_pLoginbkPng;

 

源文件

构造:m_pLoginbkPng = NULL;

析构:

if (m_pLoginbkPng!=NULL)
 {
  delete m_pLoginbkPng;
  m_pLoginbkPng=NULL;
 }

 

//自定义函数

void CMyMsgBox::InitResources()
{
 if (m_pLoginbkPng == NULL)
 {
  m_pLoginbkPng = new CPng2Rgb32Dib;
 }
 CString szExeDir = GetExeDir().c_str();
 BOOL bLoad = m_pLoginbkPng->LoadPng(CString(szExeDir + _TEXT("\\res\\msgback.png")));
 if (!bLoad)
  return;
 m_pLoginbkPng->PreMultiplyRGBChannels();

 CRect rect;
 memset(&rect, 0, sizeof(CRect));
 rect.bottom = m_pLoginbkPng->GetHeight();
 rect.right = m_pLoginbkPng->GetWidth();
 //GetClientRect(rect);

 HDC ParentHdc = CreateCompatibleDC(NULL);
 HBITMAP BmpParent = CreateCompatibleBitmap(GetDC()->GetSafeHdc(), rect.Width(), rect.Height());
 HGDIOBJ OldBmpP = SelectObject(ParentHdc, BmpParent);
 m_pLoginbkPng->Draw(ParentHdc, 0, 0, rect.Width(), rect.Height(), 0, 0, rect.Width(), rect.Height(),255);
 ButtonLoadImage(&ParentHdc);
 if (BmpParent)
 {
  DeleteObject(BmpParent);
  BmpParent = NULL;
 }
 if (ParentHdc)
 {
  SelectObject(ParentHdc, OldBmpP);
  DeleteDC(ParentHdc);
  ParentHdc = NULL;
  OldBmpP = NULL;
 }

}

重绘背景图片

void CMyMsgBox::OnPaint()
{
 CPaintDC dc(this); // device context for painting
 // TODO: 在此处添加消息处理程序代码
 // 不为绘图消息调用 CDialog::OnPaint()
 if (m_pLoginbkPng)
 {
  if(m_pLoginbkPng->IsValid())
  {
   CRect rect;
   GetClientRect(rect);
   m_pLoginbkPng->Draw(dc.GetSafeHdc(), rect.left, rect.top, rect.Width(), rect.Height(),
    0, 0, m_pLoginbkPng->GetWidth(), m_pLoginbkPng->GetHeight());
  }

 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值