创建透明画刷 加载BMP图片

//创建透明画刷
CClientDC dc(this);
//使用(HBRUSH)GetStockObject可以返回空画刷句柄,但CBrush
//无法通过画刷句柄构造,可通过给其静态成员函数FromHandle传递HBRUSH
//句柄获得CBrush指针
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush=dc.SelectObject(pBrush);
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);

 

加载BMP图片

 

HBITMAP hBitmap;
//hBitmap = (HBITMAP)::LoadImage(::AfxGetInstanceHandle(), "NetFriend.bmp", IMAGE_BITMAP, 0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//从文件中加载,
hBitmap = (HBITMAP)::LoadImage(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0,0,LR_CREATEDIBSECTION);//从资源文件中加载

 HBITMAP hbmp = LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(uBmpID));;//(HBITMAP)::LoadImage(::AfxGetInstanceHandle(), MAKEINTRESOURCE(uBmpID), IMAGE_BITMAP, 0, 0, NULL);
//  CBitmap bmp;
//  bmp.LoadBitmap(uBmpID);
//  HBITMAP hbmp = (HBITMAP)bmp;
 if (NULL != m_bitmap.m_hObject)
 {
  m_bitmap.DeleteObject();
 }
 if (hbmp != NULL)
 {
  m_bitmap.Attach(hbmp);
  m_bitmap.GetBitmap(&m_bmp);
 }

  CBitmap* pOldBitmap = (CBitmap*)(dcCompatible.SelectObject(&m_bitmap));
  //130, 224, 219, 272
  pDC->StretchBlt(0, 0, rect.Width(), rect.Height(),
   &dcCompatible, 0, 0, m_bmp.bmWidth,
   m_bmp.bmHeight, SRCCOPY);

  dcCompatible.SelectObject(pOldBitmap);
  //ReleaseDC(&dcCompatible);
  dcCompatible.DeleteDC();

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值