注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

adulto的个人主页

 
 
 

日志

 
 

对话框中加入图片   

2007-08-11 11:57:56|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

具体步骤:

1:找到Cvc150Dlg::OnPain()函数

如果没有最小化在else下加入代码如下:
 void Cvc150Dlg::OnPaint()
{
 if (IsIconic())
 {
  。。。。
 }
 else             //
CPaintDC dc(this);
 CBitmap bitmap1;
 bitmap1.LoadBitmap(IDB_BITMAP1);
 BITMAP bm;
 bitmap1.GetBitmap(&bm);
 CDC dc1;
 dc1.CreateCompatibleDC(&dc);
 CBitmap *bitmapold=dc1.SelectObject(&bitmap1);
 dc.StretchBlt(0,0,bm.bmWidth,bm.bmHeight,&dc1,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
 dc1.SelectObject(bitmapold);
 CBitmap bitmap2;
 bitmap2.LoadBitmap(IDB_BITMAP2);
 bitmap2.GetBitmap(&bm);
 bitmapold=dc1.SelectObject(&bitmap2);
 dc.TransparentBlt(0,0,bm.bmWidth,bm.bmHeight,&dc1,0,0,bm.bmWidth,bm.bmHeight,RGB(255,255,255));
 dc.SelectObject(bitmapold);
 CBitmap bitmap3;
 bitmap3.LoadBitmap(IDB_BITMAP3);
 bitmap3.GetBitmap(&bm);
 bitmapold=dc1.SelectObject(&bitmap3);
 dc.StretchBlt(140,0,bm.bmWidth,bm.bmHeight,&dc1,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
 dc1.SelectObject(&bitmapold);。
}
}

该图加入了三个bmp图片
加入代码总结如下:

1、首先要定义好三个图片,通过添加资源的方法,在资源管理器中找到图片加入到程序。当然也可以自己在vs中自己绘制。

2、然后定义三个CBitMap bitmap1,bitmap2,bitmap3,*bitmapold;
     把定义的图片加载到bitmap1-bitmap3中
     用该语句实现:bitmap1.LoadBitmap(IDB_BITMAP1);//其中IDB_BITMAP1为定义的图片的ID号
 
3、定义一个结构(MFC已经定义好的)BITMAP bm;
     将图片导入该结构  bitmap1.GetBitmap(&bm);

4、定义画板CPaintDC dc(this);
                        CDC dc1;

5、将源画板一目的画板建立和谐一致对应关系
         dc1.CreateCompatibleDC(&dc);
       
6、将画板和图片建立联系。
      CBitmap *bitmapold=dc1.SelectObject(&bitmap1);

5、

     A\将源图片以收缩或拉伸的方式铐入目的图板中所用语句:
      dc.StretchBlt(0,0,bm.bmWidth,bm.bmHeight,&dc1,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
     B\将源图片以指定颜色透明方式铐入目的图板中所用语句:
       dc.TransparentBlt(0,0,bm.bmWidth,bm.bmHeight,&dc1,0,0,bm.bmWidth,bm.bmHeight,RGB(255,255,255));

7、恢复原绘图环境
      dc1.SelectObject(&bitmapold);

在OnDraw里  
   
  int   nBmpX;  
  int   nBmpY;  
  HDC   hDC;  
  HBITMAP   hBitmap=(HBITMAP)::LoadImage(NULL,文件名,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);  
  BITMAP   bmp;  
  GetObject(hBitmap,sizeof(bmp),&bmp);  
  nBmpX=bmp.bmWidth;  
  nBmpY=bmp.bmHeight;  
  hDC=CreateCompatibleDC(NULL);  
  SelectObject(hDC,hBitmap);  
  CClientDC   dc(this);  
  StretchBlt(dc,0,0,nBmpX,nBmpY,hDC,0,0,nBmpX,nBmpY,SRCCOPY);  
   
  //你可以作些优化工作,诸如此类

  评论这张
 
阅读(46)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017