VC++ 6.0 MFC Picture Control Usage
来源:互联网 发布:被狙击的学园 知乎 编辑:程序博客网 时间:2024/05/19 17:51
1、添加一个Picture 控件
属性 -->类型-->位图
为了对控件有区别,要把Picture的ID改下,我这里改为ID_PICTURE
2、添加Picture的控制变量
右键 -->建立类向导-->Member Variables
选中IDC_PICTURE,单击Add Variable...,确定
3、添加一个HBITMAP变量
HBITMAP m_bitmap;
m_bitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1)); //导入位图
m_picture.SetBitmap(m_bitmap);//显示m_bitmap
这种方法太不灵活了,你也可以自己加载自己喜欢的图片!
CString m_strfile; /***你在文件选择对话框中选中的文件名***/
CRect r;
GetClientRect(&r);
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Bmp files(*.bmp)|*.bmp|",NULL);
if(dlg.DoModal ())
{
m_strfile=dlg.GetPathName ();
}
m_bitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),
m_strfile,
IMAGE_BITMAP,
r.Width()/2, // 原图的1/2
r.Height()/2, //原图的1/2
LR_LOADFROMFILE);
m_picture.SetBitmap(m_bitmap);
为了提高程序的灵活性,我想让他不仅加载bmp图片,我还想让他加载jpeg,png等图片,并且按照一定的比例缩放,下面使用CImage类进行处理
要把在头文件上加上
#include "atlimage.h"
CRect rect;m_picture.GetClientRect(&rect);//获取Picture Control的属性CDC *pDC = m_picture.GetDC();CImage image;image.Load(m_strfile);//加载图片CImage t_image;t_image.Create(rect.Width(),rect.Height(),32);//创建缩放后图片的存储区/* 求缩放比例 */float width = rect.Width()/(float)image.GetWidth() , height = rect.Height()/(float)image.GetHeight();float result = width < height ? width : height;if (m_bitmap) DeleteObject(m_bitmap);//清除Picture Control 缓存 image.Draw(t_image.GetDC(),0,0, image.GetWidth()*result, image.GetHeight()*result); //按照Picture控件的大小,(不按比例)缩放原始图片 t_image.ReleaseDC();m_bitmap = t_image.Detach();HBITMAP OldBitmap = m_picture.SetBitmap(m_bitmap); if (OldBitmap) DeleteObject(OldBitmap);
注:VC++6.0做这个很不方便,今天搞了一下午都没有搞好,后来试用VS2010,反正就想说一句,先进的东西就是好!!!
- VC++ 6.0 MFC Picture Control Usage
- VC++ 6.0 MFC Tab Control Usage
- C++/MFC-Picture Control
- mfc- Picture control显示图片
- MFC Picture Control显示图片
- MFC--图片控件Picture Control
- 【MFC】picture control改变背景图片
- MFC控件(12):Picture Control
- MFC 动态创建Picture Control
- MFC图片控件Picture Control
- mfc图片自适应picture control
- VC++ 6.0 MFC List Control
- 【VC++】(一):MFC在Picture control控件中显示Bitmap
- MFC 使用picture control 加载图片
- MFC中Picture Control如何添加图片
- 改变MFC picture control控件背景色
- MFC中Picture Control如何添加图片
- MFC的picture control响应鼠标操作
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- 矩阵旋转
- GPIO口控制学习
- 转载:michael的文章1
- Common Lisp 语言编写的Tic-Tac-Toe
- VC++ 6.0 MFC Picture Control Usage
- HDU 4605 Magic Ball Game 树状数组
- 【Android游戏开发二十四】360°平滑游戏摇杆(触屏方向导航)
- Max Sum
- hibernate 生成表
- Android AutoSleep休眠机制
- 三种简单的递归
- 时间字符串的转换
- asp.net用类似操纵Sql语句的方式快速实现Excel读写的方法(oleDB 方式)