首页 软件 购物 网址 万年历 阅读 | 天天财汇 | 开发教程 头条阅读
图片批量下载器 M3U8下载器 网页批量下载器 图片自动播放器 淘宝下载 屏幕截图器 网页截图器 超级按键
喔哦浏览器 一键清理系统垃圾 天天百宝箱 布谷鸟定时关机 豆豆文本编辑器 木马查杀 显示器测试 好听音乐
TxT小说阅读器 快马文件互传 小说家小说写作助手 FoxFile文件管理器 千寻小说下载 高山文件备份 网速测试 文字转语音大师
股价下载分析器 离线地图下载器 多播视频 漫多多 品妙游戏 打豆豆 俄罗斯方块 果蔬连连看 宠物连连看 美女连连看 五子棋 订制软件
推荐分类: 软件公告 | 焦点关注 | 天天财汇 |
  当前位置: 首页 > 软件公告 > 技术专区 > 利用IPicture接口加载、显示图片 > 正文显示
  百分百防木马的网页浏览器 网虫浏览器
 翻页: [1]   共1/1页
第1楼: 利用IPicture接口加载、显示图片  
   作者: 匿名   发表时间: 2008/5/3 21:50:02   主页:   IP: 保密
IPicture接口管理一个图片对象和它的属性。图片对象提供对Bitmap Icon Metafile的语言不相关的抽象支持。图像对象的主要接口是IPicture和IPictureDisp。IPictureDisp从IDispatch继承,提供了通过自动化访问图片属性的能力。图片对象可通过OleCreatePictureIndirect创建。关于IPicture支持的其他接口和方法可以看MSDN,一般创建图片对象可以用OleLoadPicture函数,它简化了基于流内容创建图片对象。下面的代码中有两个未定义的变量是FilePath和hDC。

//FilePath是从外部传入的图片路径

//打开文件

HANDLE hFile = CreateFile(FilePath, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

_ASSERTE(INVALID_HANDLE_VALUE != hFile);

//取文件大小

DWORD dwFileSize = GetFileSize(hFile, NULL);

_ASSERTE(-1 != dwFileSize);

LPVOID pvData = NULL;

//分配内存,准备读入图片文件的数据

//GlobalAlloc从堆分配指定字节的内存区域

HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);

_ASSERTE(NULL != hGlobal);

//GlobalLock函数锁住一个全局的内存对象同时返回一个指向对象首字节的指针

pvData = GlobalLock(hGlobal);

_ASSERTE(NULL != pvData);

DWORD dwBytesRead = 0;

//读取文件的数据到分配的全局内存

BOOL bRead = ReadFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL);

_ASSERTE(FALSE != bRead);

GlobalUnlock(hGlobal);

CloseHandle(hFile);

//到此,我们已经把文件的数据读到了内存当中

LPSTREAM pstm = NULL;

//从全局内存创建IStream接口指针

HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pstm);

_ASSERTE(SUCCEEDED(hr) && pstm);

//根据图片文件创建IPicture接口指针

hr = ::OleLoadPicture(pstm, dwFileSize, FALSE, IID_IPicture, (LPVOID *)&gpPicture);

_ASSERTE(SUCCEEDED(hr) && gpPicture);

pstm->Release();

//至此,IPicture接口建立好,下面开始画图片

//hDC是外部传入的画图设备

long hmWidth;

long hmHeight;

gpPicture->get_Width(&hmWidth);

gpPicture->get_Height(&hmHeight);

//转换himetric距离为pixels距离,1英寸=25.4毫米

int nWidth = MulDiv(hmWidth, GetDeviceCaps(hDC, LOGPIXELSX), 2540);

int nHeight = MulDiv(hmHeight, GetDeviceCaps(hDC, LOGPIXELSY), 2540);

RECT rc;

GetClientRect(hWnd, &rc);

//IPicture::Render显示图片

gpPicture->Render(hDC, 0, 0, nWidth, nHeight, 0, hmHeight, hmWidth, -hmHeight, &rc);

 

 翻页: [1]   共1/1页



   若有疑问请联系我们

  ※软件公告※
图片批量下载器
获首届软件创新大赛优秀奖
电脑教育报
专访TxT小说阅读器
软件相关
·软件公告
·图片批量下载器
·超级按键
·网虫浏览器
·一键清除系统垃圾
·TxT小说阅读器
·热门小说推荐
·小说下载器
·网页截图器
·木马祼奔
·天天百宝箱
·显示器测试
·图片管理器
·好听音乐盒
·连连看游戏系列
资讯相关
·焦点关注
·在线游戏
·娱乐八卦
·经济论坛
·体育世界
·健康知识
·每日一笑
·技术专区
·特别推荐
·随便贴贴
三石聚峰
Intel软件合作伙伴
·几张很黄很黄的图片
·预测你的未来潜能

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 12:31:13-

 网站联系 2006-2024 三石聚峰 WWW.3FWork.COM 蜀ICP备06016416号