Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 图片的效果问题!(1)
【标  题】:图片的效果问题!(1)
【关键字】:
【来  源】:http://blog.csdn.net/jh2005/archive/2006/11/21/1402469.aspx

图片的效果问题!(1)

Your Ad Here

/*功能说明:将hForBMP透明地贴到hBgBMP上
  参数说明:CDC *pdc--要显示图片的设备
            CRect rect--要显示图片的矩形区域
            int x,int y---hForBMP在hBgBMP的左上角的位置
            HBITMAP hBgBMP--背景图片的句柄
            HBITMAP hForBMP--前景图片的句柄
  图片要求:前景图片由左半部分和右半部分组成,右半部分是其蒙版效果部分.
  原理;将蒙版部分与背景图进行与操作,然后将实体部分与背景图进行或操作的结果.
  声明:void TransparentBMP(CDC *pdc,CRect rect,int x,int y,HBITMAP hBgBMP,HBITMAP hForBMP);

*/

TransparentBMP(CDC *pdc,CRect rect,int x,int y, HBITMAP hBgBMP, HBITMAP hForBMP)
{
   CDC memdc;
   memdc.CreateCompatibleDC(pdc);
   CBitmap* pBitmap=CBitmap::FromHandle(hBgBMP);
   memdc.SelectObject(pBitmap);
   pdc->BitBlt(0,0,rect.Width(),rect.Height(),&memdc,0,0,SRCCOPY);

   pBitmap=CBitmap::FromHandle(hForBMP);
   BITMAP bm;
   pBitmap->GetBitmap(&bm);
   memdc.SelectObject(pBitmap);
   pdc->BitBlt(x,y,bm.bmWidth/2,bm.bmHeight,&memdc,bm.bmWidth/2,0,SRCAND);
   pdc->BitBlt(x,y,bm.bmWidth/2,bm.bmHeight,&memdc,0,0,SRCPAINT);
  
}
/*调用示例:
void CTouMingView::OnPaint()
{
   CPaintDC dc(this); // device context for painting
 // TODO: Add your message handler code here
    m_dra=(HBITMAP)LoadImage(NULL,"res\\dra.bmp",IMAGE_BITMAP,170,99,LR_LOADFROMFILE);
    m_hBg=(HBITMAP)LoadImage(NULL,"res\\bg.bmp",IMAGE_BITMAP,600, 450,LR_LOADFROMFILE);
    TransparentBMP(&dc,CRect(0,0,600,450),280,320,m_hBg,m_dra);
}
*/ 

半透明显示图片:【上一篇】
STL对字符串排序:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • Solaris网络管理培训(第四章:DNS客户端的设置)
  • 在VB中建立可旋转的文本特效
  • C++解析XML
  • linux远程出现乱码的解决方法
  • Java,Beans和关系数据库的镜像(1)
  • 版本管理
  • 一个关于日期选择的很实用的小东西
  • ASP设计常见问题及解答精要-2
  • 我“恨”ECO--ECO学习随笔
  • Migration from J2EE to .NET
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.