环境:Visual Studio 2010
问题:MFC利用CImage类将图片显示到Picture控件上
解决:
1.通过向导为Picture控件添加变量,如果不成功,则手动添加。参考(VS2010为Picture Control 手动添加变量)
2.在对应的函数里添加如下代码:
CImage image; //创建图片类
image.Load(rphoto); //根据图片路径加载图片
CRect rect;//定义矩形类
int cx = image.GetWidth();//获取图片宽度
int cy = image.GetHeight();//获取图片高度
GetDlgItem(IDC_PICTURE)->GetWindowRect(&rect);//将窗口矩形选中到picture控件上
ScreenToClient(&rect);//将客户区选中到Picture控件表示的矩形区域内
GetDlgItem(IDC_PICTURE)->MoveWindow(rect.left, rect.top, cx, cy, TRUE);//将窗口移动到Picture控件表示的矩形区域
CWnd *pWnd=GetDlgItem(IDC_PICTURE);//获得pictrue控件窗口的句柄
pWnd->GetClientRect(&rect);//获得pictrue控件所在的矩形区域
CDC *pDC=pWnd->GetDC();//获得pictrue控件的DC
image.Draw(pDC->m_hDC, rect); //将图片画到Picture控件表示的矩形区域
ReleaseDC(pDC);//释放picture控件的DC
3.编译,运行。你就可以看到图片显示到Picture控件上了。
分享到:
相关推荐
MFC中基于CImage类在静态控件上显示图片,我目前使用的是VS2012,不知道和其他编程版本上是否存在问题,如果存在兼容问题,也可以直接打开CImageBaseMfcDlg.cpp文件,直接查看程序,通过参考应该能够顺利实现在静态...
详细说明cimage的子程序功能,及具体用法!
vs2008下完全可以,看了这些demo,CImage这个类就掌握的差不多了。
在VS2008的MFC单文档下利用多CImage类读入多幅图片
MFC CImage加载图片a通道
利用强大的CImage类打开和保存jpeg、bmp、gif和png格式图片,有VC下的Demo。
使用CImage类处理图像显示与格式转换 使用CImage类处理图像显示与格式转换
用MFC的CImage类完成图像的显示和保存是VC图像处理最基础工作。
Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。因此,想要在...
类画板程序 vs2010下实现 主要程序在CGview中实现 功能较少,结构清晰 vs2010中,CImage类能很好的处理各种图片
利用CImage类读取png格式的图片生成精灵动画 /* 写此代码是为了教学所用,因为在网络上找了很久都没有找到一个利用CImage类来实现精灵动画的源码。图片使用的是网络资源,如有侵权,请联系成都信息工程学院计算机...
用CImage类在VS2008平台上实现的MFC单文档多幅图片的读入
C++ MFC 放大和缩小图片源码,您可以使用它学习图片的存储和现实,还有就是将图片按原来大小的多少比例显示。
CImage类源代码(C++) 可以使用该类直接对图片处理,可以任意角度旋转
mfc 图片的放大缩小 花费了我2周的时间才完成的 数据结构 c语言 MFC,是用MFC做的,,该程序功能强大,健壮性很强,对于错误输入有提示,程序完全正确,解压既可以运行
用Cimage显示png图片,最简单的程序了。
mfc加载位图,并可以放大、缩小图片
MFC 加载图片 动态加载图片 静态加载图片 ,解决了从网上找的代码的内存泄漏的问题。
C++ CImage类,用于处理BMP格式图像。
创建一个MFC工程,利用CImage 类实现打开任意文件夹中的图片并显示功能