本人采用VS2003开发平台,由于可以兼容VC6.0的大量代码。但是要实现目前C#的大量功能,还是要费不少功夫的。下面讲下如何如下图片下载,然后显示在图片控件的功能。单独封装了两个函数可以只直接使用。

下载远程图片函数如下:

CString dir_name="";dir_name=ReturnPath();HRESULT hre = URLDownloadToFile(0, _T("http://172.28.125.74/auction/uploads/images/2014-03/1395916979-126367078.jpg"), _T(dir_name + "/1.jpg"), 0, NULL);if(SUCCEEDED(hre)){Sleep(1000);CDC *pDC = m_edit.GetDC();  ShowJpgGif(pDC, _T(dir_name + "/1.jpg"), 0, 0,(1024 / 2)-20, (768 / 2)-60);  }

本地路径获取代码:

CString CAuctionShadowDlg::ReturnPath(){CString    sPath;GetModuleFileName(NULL, sPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH);sPath.ReleaseBuffer();int    nPos;nPos = sPath.ReverseFind('\\');sPath = sPath.Left(nPos);return    sPath;}

图片显示到控件代码:

/**
CDC *pDC, 传入控件
CString strPath, 图片本地路径
int x, 控件摆放图片的起点坐标位置
int y,
int widthX,控件摆放图片的宽和高
int heigthY*/bool CAuctionShadowDlg::ShowJpgGif(CDC *pDC, CString strPath, int x, int y,int widthX,int heigthY)
{  IStream *pStm;     CFileStatus fstatus;     CFile file;     LONG cb;     if (file.Open(strPath,CFile::modeRead)&&file.GetStatus(strPath,fstatus)&&((cb = fstatus.m_size) != -1))     {     HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);     LPVOID pvData = NULL;     if (hGlobal != NULL)     {     pvData = GlobalLock(hGlobal);    if (pvData != NULL)     {     file.Read(pvData, cb);     GlobalUnlock(hGlobal);     CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);     }    }    }    else    return false;    //显示JPEG和GIF格式的图片,GIF只能显示一帧,还不能显示动画,    //要显示动画GIF请使用ACTIVE控//件。    IPicture *pPic;    //load image from file stream    if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))    {    OLE_XSIZE_HIMETRIC hmWidth;     OLE_YSIZE_HIMETRIC hmHeight;     pPic->get_Width(&hmWidth);     pPic->get_Height(&hmHeight);     double fX,fY;     //get image height and width    fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);     fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);     //use render function display image  if(widthX>0&&fX>widthX){if(FAILED(pPic->Render(*pDC,x,y,widthX,heigthY,0,hmHeight,hmWidth,-hmHeight,NULL)))     {    pPic->Release();    return false;    }    }else{if(FAILED(pPic->Render(*pDC,x,y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))     {    pPic->Release();    return false;    }    }pPic->Release();    }     else     return false;   return true;
}

VC++下载图片然后控件显示JPG图片的实现相关推荐

  1. 演练GridView控件显示目录图片

    本博文,将带你学习使用GridView控件显示站点目录的图片.如果你已经学会怎样做图片缩略图:怎样应用接口来实现统一的属性,方法或函数:怎样动态加载用户控件,等等.就不必往下看了.因为此篇博文就是演练 ...

  2. MFC程序调用Windwos CMD命令打印图片 MFC 控件显示层次调整,即(叠放次序)和绘制遮挡置于底层顶层灰色

    MFC打印 打电话 ShellExecute 从您的计划中 print 操作 (特好用) ShellExecute(NULL,"print","c:\\test.png& ...

  3. c# picturebox控件显示本地图片和显示网上的图片

    显示本地图片 pictureBox1.Image=Image.FormFile(@"图片路径"); 显示网络图片 pictureBox1.ImageLocation = @&quo ...

  4. vc实现html显示,在VC对话框中用ChtmlView控件显示HTML(2)

    CHtmlCtrl类的头文件: #include "afxhtml.h" class CHtmlCtrl : public CHtmlView { public: CHtmlCtr ...

  5. 如何让web控件FileUpload选择完文件之后就自动触发事件,让Image控件显示出图片来...

    function SelectImg(url){                 document.all.item("ProductImg").src=document.getE ...

  6. mfc picture控件显示png图片

    onpaint函数里添加程序: CClientDC *pDC = new CClientDC(GetDlgItem(IDC_LIGHT)); CRect rect; GetDlgItem(IDC_LI ...

  7. 第一站小红书图片裁剪控件之二,自定义CoordinatorLayout联动效果

    本篇续: 第一站小红书图片裁剪控件,深度解析大厂炫酷控件 先来看看几张效果图: emmmm,想感受高清丝滑的动画效果,有以下两种方式: https://github.com/HpWens/MeiWid ...

  8. 像小红书一样的图片裁剪控件联动效果

    今日科技快讯 据CNBC报道,美国法官已经要求特斯拉首席执行官埃隆·马斯克(Elon Musk)在未来两周内设法与美国证券交易委员会(SEC)达成和解协议.否则,法院将决定是否判马斯克犯有藐视法庭罪. ...

  9. MFC 对话框中的picture control 控件显示图片

    MFC读取图片一般使用自定义的DIB文件.DIB文件集中了处理图片的API函数,这样可以方便我们的图像操作. DIB文件下载路径:DIB文件下载 MFC显示图片有几种方法: 1.在运行界面上选择 文件 ...

最新文章

  1. ASP.NET的Cookie跨域问题
  2. 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
  3. 笔记-项目质量管理-精简
  4. 【Python基础】Python 10 个习惯用法,看看你都知道不?
  5. 图像处理作业 第8次
  6. Arrays类中的binarysearch
  7. 不同数据库模式下DATE类型的行为解析
  8. ajax返回功能,jquery – 记得ajax在点击返回按钮时添加的数据
  9. ueditor1.4.3 jsp版在ssh下的配置
  10. 时钟模块ds1302的使用
  11. Servlet原理解析
  12. PPT的配色方法(师从于珞珈老师)
  13. python日期计算,Python 日期的转换及计算的具体使用详解
  14. unrecognized selector sent to instance 0x7fbb51c7c490问题解决方法之一
  15. android 打包报错 Execution failed for task ‘:app:lintVitalRelease‘.
  16. 虚拟机由于找不到msvcr120dll_计算机提示丢失msvcr120.dll文件怎么办?
  17. 【释义详解】Software License (软件许可证)是什么?
  18. 130个物联网示范项目上榜!工信部权威发布
  19. 【转】欧式空间与酉空间——概念区分
  20. linux搭建天地伟业easy7,easy7视频监控系统客户端|天地伟业easy7监控客户端简洁版(Easy7 Smart Client Express)下载 V7.12 官方版 - 比克尔下载...

热门文章

  1. 金蝶物料辅助属性改造
  2. 两平面平行但不重合的条件是_____黑龙江省大庆外国语学校高中数学_第二章《2.2_直线、平面平行的判定及其性质》单元测试5_新人教A版必修3...
  3. 不同范数下的余弦定理_什么是绝对矩阵范数?
  4. LeetCode 805数组切割题目
  5. scrcpy-将Android手机屏幕实时投射到电脑
  6. 如何使用logcat和getevent查看遥控器的ir key,linux key和android key值
  7. 4.9 黑名单数据库的界面展示
  8. C源码:通过IP地址查找主机名 findip.c
  9. Python综合基础及机器学习面试题
  10. 用户、配额管理 、 云主机类型管理 、 镜像管理 、 网络管理 、 安全和实例管理 、 计算节点扩容案例