VC2019 使用GDI+ 显示PNG图片
新建一个单文档工程;
添加一个菜单;在视类中处理此菜单;
视类CPP文件添加:
#include "gdiplus.h"
视类.h文件添加成员:
ULONG_PTR m_gdiplusToken;
视类.h文件头部添加:
#pragma comment(lib,"gdiplus.lib")
这是载入GDI+的库;
gdiplus.h,在 外部依赖项 中可以发现;
先在VC资源中导入png1.png;操作失败;将文件拷贝到项目res文件夹下,并修改.rc文件;.rc文件包括如下一句;
IDB_PNG1 PNG "res\\png1.png"
菜单处理函数:
void CimageDemo1View::OnMenu32771()
{// TODO: 在此添加命令处理程序代码Gdiplus::GdiplusStartupInput gdiplusStartupInput;Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);CClientDC* pDC = new CClientDC(GetDlgItem(IDB_PNG1));//CClientDC* pDC = new CClientDC();CRect rect;//GetDlgItem(IDB_PNG1)->GetWindowRect(&rect);rect.top = 0;rect.left = 0;rect.bottom = 350;rect.right = 800;Gdiplus::Graphics graphics(pDC->m_hDC); // Create a GDI+ graphics object Gdiplus::Image image(_T("png1.png")); // Construct an image graphics.graphics.DrawImage(&image, 0, 0, image.GetWidth(), image.GetHeight());delete pDC;//Gdiplus::GdiplusShutdown(m_gdiplusToken);
}
然后还需要在源码目录放一个png1.png;
代码是先根据资源中的png生成DC指针;由此DC构造Gdiplus::Graphics类别的对象graphics;然后画png1.png到此graphics对象上;
运行;
有如下问题;
GetDlgItem(IDB_PNG1)->GetWindowRect(&rect);
此句引发异常:读取位置 0x00000020 时发生访问冲突;
根据网上资料有:
vs不支持通过AfxGetMainWnd()获取窗口句柄,把AfxGetMainWnd()->m_hWnd改成AfxGetApp()->m_pMainWnd->m_hWnd即可;
先改为直接设置rect的值;
然后最后这句是释放GDI+库,会引发 写入位置 0x02EF12BC 时发生访问冲突;先注释掉;
然后是图像并没有画到本窗口的DC上,是画到了桌面的DC上;
下回再搞;如果是直接从Debug目录运行.exe文件,此目录也需要放一个png1.png;
VC2019 使用GDI+ 显示PNG图片相关推荐
- VC6中使用内存DC加载并显示JPG图片的注意事项
From: http://blog.csdn.net/boythl/article/details/3137446 今天在VC6中显示JPG图片,采用了内存DC缓存的方法刷新,但死活刷不出来,查了一下 ...
- 在WPF里面显示DIB图片格式的图片
前几天写程序需要将DIB(设备无关位图)格式的图片在WPF 程序中显示出来,在网上查了一些资料和代码,记录下来以便以后参考. 设备有关位图主要是显卡在显存中保存的图片格式,显卡就是从显存里面将要显示的 ...
- 使用gdiplus显示gif图片
使用gdiplus显示gif图片 需求 在没有MFC上下文的windows环境下实现gif图片的显示: 可以根据文件名来显示gif图片: gif图片集成到可执行程序中. 实现思路 windows ap ...
- JEECMS的新浪图集在IE9、10不能显示大图片BUG的解决方法
2019独角兽企业重金招聘Python工程师标准>>> 最近我给学校对外交流合作处做的网站,因为是学java开发,所以就基于JEECMS去做. 等到项目做好,差不多要 交工的时候,发 ...
- duilib 显示内存图片
CControlUI* pCtrl=NULL; CDuiString sCtrlKey = _T("your_key_name"); HBITMAP hBmp; // GDI方式获 ...
- img 服务器上的图片不显示图片,img显示服务器图片不显示
img显示服务器图片不显示 内容精选 换一换 您可根据需求自定义下发消息内容,例如新增场景:终端用户发送"应用魔方"时,聊天机器人自动回复该产品介绍给用户.在"ChatB ...
- 显示乱七八糟图片问题之解决
今天早上在群里有网友求助说电脑程序中多出了很多乱七八糟的图片,不知道怎么回事.(具体请参阅"求助:显示乱七八糟图片解决方法征集"[url]http://starger.blog.5 ...
- framebuffer显示JPEG图片
framebuffer显示JPEG图片 2011-05-03 20:14:45 分类: 嵌入式 转自http://www.linuxsense.org/archives/281.html http:/ ...
- java jframe显示图片_java怎么在JFrame中显示动态图片
java怎么在JFrame中显示动态图片 (2012-09-16 23:39:54) 标签: 杂谈 import java.awt.Graphics; import javax.swing.Image ...
最新文章
- 爱上MVC3系列~分部视图中的POST
- IAR实际使用过程中遇到的问题
- JAVA之关于This的用法
- Oracle 11g中创建实例
- QT中信号和信号槽详解
- 三、界面介绍(IVX快速手册)
- sqlserve 热备用状态更新_燃气地暖一个月费用多少钱?看完收藏备用
- VMware VCSA6.0的部署及升级到6.5
- vscode中控制台不能输入_vscode控制台不能输入怎么办
- 哈工大计算机报深圳还是本部,哈工大本部和哈工大深圳哪个比较好?
- tensorboard的安装与使用
- 【Unity3D插件】Unity开发利器——插件(各类插件及教程推荐)| 寻找C站宝藏
- Spring Cloud
- 精选西门子PLC工程实例源码【共300套】
- php laravel model,如何使用 Laravel Eloquent Model
- springMVC3.0后台验证信息不显示的原因初探
- 2021年C证(安全员)复审模拟考试及C证(安全员)作业模拟考试
- 微信小程序-枯木学习笔记5-我的信息
- 一场Pandas与SQL的巅峰大战
- 【Hive】快速入门~
热门文章
- JSON数据和Java对象的相互转换
- 快速上手RaphaelJS--RaphaelJS_Starter翻译(三)
- 二叉树的前序中序后序递归查找,深度,广度搜索C++实现(VS2017)
- 微信小程序中base64格式的小程序码通过canvas画出来无效
- KEIL编译stdarg处理机制遇到incorrect use之类的问题
- [学习笔记]stm32
- MATLAB常用命令(窗口命令、标点符号特殊功能和帮助命令)
- 7.2 matlab符号微积分(符号函数的极限、导数和积分)
- OpenCV学习--saturate_cast防止数据溢出
- cvCalcBackProject的例子