EVC-在MFC中将BMP格式图片显示到对话框或文档中

可在OnPaint,OnDraw,OnEraseBkgnd实现

OnPaint中

 

CDC   dcMem;    
 dcMem.CreateCompatibleDC(&dc);     //创建内存设备上下文,与另一个设备上下文匹配。可以用它在内存中准备图像 


 CBitmap   bmpBackground;  
 bmpBackground.LoadBitmap(资源里Bitmap的ID);   //从应用的可执行文件中加载一个命名的位图资源来初始化位图对象 


 BITMAP   bitMap;  
 bmpBackground.GetBitmap(&bitMap);   //用位图信息填充BITMAP结构 


dcMem.SelectObject(&bmpBackground);  

 

CRect rect;

GetClientRect(&rect);//获得用户区rect (0,0,rect.Width(),rect.Height())


 dc.StretchBlt(X1,Y1,X2,Y2,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);

 

OnDraw中

 CBitmap bitmap;
 bitmap.LoadBitmap(资源里Bitmap的ID);

 BITMAP bmp;
 bitmap.GetBitmap(&bmp);

 CDC dcCompatible;
 dcCompatible.CreateCompatibleDC(pDC);

 dcCompatible.SelectObject(&bitmap);

 CRect rect;
 GetClientRect(&rect);
 pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);

 

OnEraseBkgnd中//此函数是消息函数自己添加WM_ERASEBKGND

 CBitmap bitmap;
 bitmap.LoadBitmap(资源里Bitmap的ID);

 BITMAP bmp;
 bitmap.GetBitmap(&bmp);

 CDC dcCompatible;
 dcCompatible.CreateCompatibleDC(pDC);

 dcCompatible.SelectObject(&bitmap);

 CRect rect;
 GetClientRect(&rect);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
 ***重点return TRUE;

 

 

BOOL StretchBlt(
     int x,
     int y,
     int nWidth,
     int nHeight,
     CDC* pSrcDC,
     int xSrc,
     int ySrc,
     int nSrcWidth,
     int nSrcHeight,
     DWORD dwRop
     )
返回值:如果位图已经绘制,则返回非零值,否则为0。

参数:

x目标矩形左上角的X逻辑坐标。
y目标矩形左上角的Y逻辑坐标。
nWidth目标矩形的宽度(逻辑单位)。
nHeight目标矩形的高度(逻辑单位)。
pSrcDC指定源设备上下文。
xSrc源矩形左上角的X逻辑坐标。
ySrc源矩形左上角的Y逻辑坐标。
nSrcWidth源矩形的宽度(逻辑单位)。
nSrcHeight源矩形的高度(逻辑单位)。
dwRop指定光栅操作。光栅操作模式说明了GDI是如何组合输出操作中的颜色,包括当前画刷、可能的源位图和目标位图。可以为下列值之一:
·BLACKNESS将所有输出变为黑色。
·DSTINBERT反转目标位图颜色。
·MERGECOPY使用AND运算符组合模板与源位图的颜色。
·MERGEPAINT使用OR运算符组合源位图的反色与目标矩形的颜色。
·NOTSRCCOPY将源位图的反色拷贝到目标矩形中。
·NOTSRCERASE反转使用OR运算符组合源位图与目标矩形后得到的颜色。
·PATCOPY将模板颜色拷贝到目标矩形中。
·PATINVERT使用XOR运算符组合目标矩形与模板颜色。
·PATPAINT使用OR运算符组合模板与源位图的反色。再使用OR运算符将该操作结果与目标矩形组合。
·SRCAND使用AND运算符组合源位图和目标位图的像素。
·SRCCOPY将源位图拷贝到目标位图。
·SRCERASE反转目标矩形的颜色,再使用AND运算符将该结果与源位图组合。
·SRCINVERT使用XOR运算符组合源位图和目标位图的像素。
·SRCPAINT使用OR运算符组合源位图和目标位图的像素。
·WHITENESS使所有输出变成白色。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值