MFC (7)在pic控件里加载一幅图片源码

 
CBitmap m_bmp;
	HBITMAP   hBitmap5; 
    hBitmap5 = (HBITMAP)::LoadImage( NULL, "res//0x00304EE6.bmp",                           // 图片全路径  
                                          IMAGE_BITMAP,                          // 图片格式   
                                          0,0,   
                                    LR_LOADFROMFILE|LR_CREATEDIBSECTION);  // 注意LR_LOADFROMFILE  
    
	//获取加载的位图信息
m_bmp.Attach(hBitmap5);
DIBSECTION ds;
BITMAPINFOHEADER &bminfo = ds.dsBmih;
m_bmp.GetObject(sizeof(ds),&ds);

int cx = bminfo.biWidth;   //获取图像宽度
int cy = bminfo.biHeight;  //获取图像高度

//调整图像大小符合空间要求,使得其正好显示一张图片
CRect rect;
GetDlgItem(IDC_STATIC_1)->GetWindowRect(&rect);
ScreenToClient(&rect);
GetDlgItem(IDC_STATIC_1)->MoveWindow(rect.left,rect.top,cx,cy,true);   //调整大小

CPaintDC dc2(GetDlgItem(IDD_VINCENT1));
CRect rcclient;
GetDlgItem(IDC_STATIC_1)->GetClientRect(&rcclient);
CDC memdc;
memdc.CreateCompatibleDC(&dc2);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc2,rcclient.Width(),rcclient.Height());
memdc.SelectObject(&bitmap);

CWnd::DefWindowProc(WM_PAINT,(WPARAM)memdc.m_hDC,0);

CDC maskdc;
maskdc.CreateCompatibleDC(&dc2);
CBitmap maskbitmap;
maskbitmap.CreateBitmap(rcclient.Width(),rcclient.Height(),1,1,NULL);
maskdc.SelectObject(&maskbitmap);
maskdc.BitBlt(0,0,rcclient.Width(),rcclient.Height(),&memdc,rcclient.left,rcclient.top,SRCCOPY);

CBrush brush;
brush.CreatePatternBrush(&m_bmp);
dc2.FillRect(rcclient,&brush);

dc2.BitBlt(rcclient.left,rcclient.top,rcclient.Width(),rcclient.Height(),&memdc,rcclient.left,rcclient.top,SRCPAINT);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值