MFC载入JPG图片

##

1.定义画图函数

HRESULT CIPCamDlg::draw(char *lpImageFile, HWND hWnd, int nScrWidth, int nScrHeight)
{HDC hDC_Temp=::GetDC(hWnd);IPicture *pPic; IStream *pStm;BOOL bResult;HANDLE hFile=NULL; DWORD dwFileSize,dwByteRead;hFile=CreateFile(lpImageFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);//打开硬盘中的图形文件if (hFile!=INVALID_HANDLE_VALUE) { dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数if (dwFileSize==0xFFFFFFFF) return E_FAIL; } else { return E_FAIL; }HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);//分配全局存储空间  LPVOID pvData = NULL;if (hGlobal == NULL) {AfxMessageBox("图形文件分配出错.");return E_FAIL; }if ((pvData = GlobalLock(hGlobal)) == NULL)//锁定分配内存块 
    {AfxMessageBox("内存块锁定出问题");return E_FAIL;}ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//把文件读入内存缓冲区
    GlobalUnlock(hGlobal);if(CreateStreamOnHGlobal(hGlobal, TRUE, &pStm) != S_OK){AfxMessageBox("流初始化失败");return E_FAIL; }bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);//装入图形文件    if(FAILED(bResult)) {AfxMessageBox("图形文件装载出错.");return E_FAIL; }OLE_XSIZE_HIMETRIC hmWidth;//图片的真实宽度 OLE_YSIZE_HIMETRIC hmHeight;//图片的真实高度 pPic->get_Width(&hmWidth); pPic->get_Height(&hmHeight);//char str[20]={'\0'};
          bResult=pPic->Render(hDC_Temp,0,0,nScrWidth,nScrHeight,0,hmHeight,hmWidth,-hmHeight,NULL);//将图形输出到屏幕上
    CloseHandle(hFile);//关闭打开的文件
    pPic->Release(); GlobalFree(hGlobal);// Free memory.    if (SUCCEEDED(bResult)) { return S_OK; } else { AfxMessageBox("图形文件装载出错.");return E_FAIL; } 
}

2.调用

HWND m_hWnd;
GetDlgItem(IDC_STATIC_VIEW,&m_hWnd); //IDC_STATIC_VIEW是picture控件(不用做任何修改)
draw("D://a.jpg",m_hWnd,宽度,高度);

 

转载于:https://www.cnblogs.com/tinaluo/p/7356559.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DLR 的扩展库 Dynamitey

.NET 在 CLR 对动态语言或者脚本语言的支持是通过DLR 完成的, Miguel de Icaza对 DLR 的特点概括如下:一个针对动态语言的共享式类型系统;一个共享的 AST,可以被语言开发人员用来创建新的动态语言;针对编译器开发人员的…

MFC 单选按钮Radio使用注意

使用MFC Radio时遇到问题:数据交换时出现断言崩溃框 定位于: 解决方法: 1、按CTRLD,保证同一组内的radio的tab序号是连续的; 2、同一组内,设置 radio1的属性: group、tabstop、auto均为true&am…

C# 字符串操作:split、substring、Format

1.split split可以使用多个字符切割。 "test[12]"切割后是3个字符串,最后一个为空。 string testString "test[12]";string[] testData testString.Split([,]);int testLength testData.Length;Console.WriteLine(testLength.ToString());…

flac格式转换mp3格式_MP3,FLAC和其他音频格式之间有什么区别?

flac格式转换mp3格式Digital audio has been around a very long time so there’s bound to be a plethora of audio formats out there. Here are some of the more common ones, what differentiates them, and what to use them for. 数字音频已经存在了很长时间&#xff…

Kubernetes:Flomesh 服务网格与多集群通信

Kubernetes 成功普及了容器集群的概念。许多用户已经在多个集群中部署应用,组织需要运行多个 Kubernetes 集群可能来自以下原因(并非详尽列表):• 位置• 延迟(尽可能在靠近客户的地方运行应用程序)• 管辖…

Java四种线程池的使用

FixedThreadPool 由Executors的newFixedThreadPool方法创建。它是一种线程数量固定的线程池,当线程处于空闲状态时,他们并不会被回收,除非线程池被关闭。当所有的线程都处于活动状态时,新的任务都会处于等待状态,直到有…

袁永福软件行业从业经历

简化版》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》 袁永福简历 袁永福,男,1980年生于江西省九江市都昌县,2001年南京东南大学动力工程系本科毕业。毕业后一直从事计算机软件开发工作&…

小程序之地图导航

同学们平常使用地图的时候应该都有注意到,当我们在一个应用中选择一个地址,打开一个地图,往往会有两种显示方式,一个是显示当前自己的位置;一个是显示对方,也就是目的地的位置;如下图&#xff1…

PS2019摄影后期处理(一)

高高手之路笔记 一、学习方法 内外兼修:技术会淘汰、更新,自己内在也要提高。 二、照片格式、色彩空间 JPEG TIFF RAW sRGB:互联网相关图片,电子设备 三、照片风格 自己定义照片格式,直接后期效果 相机自带工具&a…

mdnsresponder_什么是mDNSResponder.exe / Bonjour,如何卸载或删除它?

mdnsresponderYou are no doubt reading this article because you’ve noticed the mDNSResponder.exe process running in Task Manager, you don’t remember installing it, and it doesn’t show up in the Add/Remove programs in Control Panel. So what is it, and how…

Windows 10下,如何使用PowerShell批量重启局域网电脑

PowerShell 在Windows 10中越来越受到微软重视,甚至被微软安排在开始按钮超级菜单中替换了一直以来默认的命令提示符(当然还可以换回去),这和该工具越来越强大密不可分。这次就介绍一个“群重启”命令,可让局域网内的电脑集体重启。1、单机重…

.NET MAUI学习指南

由于.NET MAUI这项技术出来不久相关的学习资源暂时除了官网以外没有太好的学习资源,这篇文章主要向大家分享几种学习.NET MAUI的学习途径,如果有好的学习资源欢迎大家私信给我然后更新到后续的文章里。(以下推荐学习途径均为免费且无广告的资…

循序渐进DB2(第2版)——DBA系统管理、运维与应用案例

《循序渐进DB2(第2版)——DBA系统管理、运维与应用案例》基本信息作者: 牛新庄出版社:清华大学出版社ISBN:9787302323013上架时间:2013-7-3出版日期:2013 年7月开本:16开页码:612版次&#xff1…

Oracle Unicode转中文(解码)

Oracle Unicode转中文(解码) CreateTime--2018年3月29日15:23:30 Author:Marydon 情景描述: 将数据库中的某个字段误存储的是Unicode编码,需要将其改成中文。 测试: --将Unicode转中文 select unistr(REPLACE(\u6d4b\u…

PS2019摄影后期处理(二)

一、曲线 二、曲线与通道 三、HSL局部调整 色相、饱和度、亮度 a.色相:一个颜色,帽子是红色 b.饱和度:树木葱郁一点 c.饱和度:衣服连杆 便黑白: 1.调低所有饱和度 2.将某个颜色饱和度提高,再转灰度。…

管理员获得所有权_在Windows 7中获得注册表项的所有权

管理员获得所有权We have previously written about how to take ownership of files and folders in Windows 7, but there may be times when you need to take ownership of or assign full permission for certain registry keys. This article shows you how to do this. …

Dojo QuickStart 快速入门教程 (2) 基本框架

下载库 首先,下载 Dojo 库:http://www.dojotoolkit.org/downloads 放了方便测试,我将文件将解压到 Web Server 的 "js/dojotoolkit" 文件夹中,如果你愿意,也可以缀上版本号。最后的目录结构应该像下图这样&a…

摊牌了,.NET开发者,准备赋能未来

hi,这里是桑小榆。一名.net开发,从19年毕业至今一直从事相关技术已近4年。发展至今,很有必要分享分享我的经历以及对于.net开发的看法和见解。篇幅有些长,无论你是学生,职业人,.NET开发者还是其他语言开发者…

网络爬虫练习

1.利用requests.get(url)获取网页页面的html文件 import requests newsurlhttp://news.gzcc.cn/html/xiaoyuanxinwen/ res requests.get(newsurl) #返回response对象 res.encodingutf-8 print(res.text) 2.利用BeautifulSoup的HTML解析器,生成结构树 import reques…

BZOJ 3434 时空穿梭

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id3434 题意: 思路: const int mod10007; const int N100005;int g[22][N]; int C[N][22],mou[N]; int h[22][N][13];int prime[N],cnt; int tag[N];void init() {int i,j;mou[1]1;f…