MFC控件学习:图片(bmp/png)

目录

加载bmp图片:

1.通过资源视图和属性加载

2.通过代码加载

加载PNG格式图片 


加载bmp图片:

1.通过资源视图和属性加载

通过资源视图本地导入一张bmp格式图片

MFC控件学习:图片(bmp/png)_第1张图片

在对话框里拖一个Picture Control

MFC控件学习:图片(bmp/png)_第2张图片

修改控件的类型和图像ID,就可以显示图片了

MFC控件学习:图片(bmp/png)_第3张图片

这样就加载完成了 

MFC控件学习:图片(bmp/png)_第4张图片

2.通过代码加载

首先要更改控件ID(我自己的如果不改就不能给这个控件添加变量,不知道是不是Bug)

MFC控件学习:图片(bmp/png)_第5张图片

在Dlg.cpp文件中,找到Oninit函数 

首先加载Bitmap图片

//1.准备Bitmap图片
CBitmap bmp;
//加载Bitmap图片,传入资源ID
bmp.LoadBitmap(IDB_BITMAP1);

将图片控件绑定的变量设为我们加载的Bitmap

//1.准备Bitmap图片
CBitmap bmp;
//加载Bitmap图片,传入资源ID
bmp.LoadBitmap(IDB_BITMAP1);

//2.将控件绑定的变量设为我们加载的Bitmap资源
m_pic.SetBitmap(bmp);

因为我们的Bitmap是局部变量,当函数退出时其相关的值也会被删掉,所以要在加载完成后进行变量分离操作

//1.准备Bitmap图片
CBitmap bmp;
//加载Bitmap图片,传入资源ID
bmp.LoadBitmap(IDB_BITMAP1);

//2.将控件绑定的变量设为我们加载的Bitmap资源
m_pic.SetBitmap(bmp);

//3.分离变量
bmp.Detach();

调试结果: 

MFC控件学习:图片(bmp/png)_第6张图片

当然,也可以将Bitmap设为成员变量,这样就不需要做变量分离操作

加载PNG格式图片 

首先添加一个成员变量CImage,因为我们加载的图片需要在多个函数中使用,所以要设置成成员变量

MFC控件学习:图片(bmp/png)_第7张图片

在Dlg.cpp文件的Oninit函数加载png图片 

//1.加载png图片
image.Load(_T("C:\\Users\\郭小乐\\Desktop\\tom.png"));

在OnPaint函数else代码块里补充代码

else
{
	//1.获得用于绘制的设备上下文
	CPaintDC dc(this);
	//2.获得绘制区域(获得图片控件相对窗口的位置)
	CRect rect;
	m_pic.GetWindowRect(&rect);
	ScreenToClient(&rect);
	CDialogEx::OnPaint();

	//绘制图片
	image.Draw(dc, rect);
}

调试结果

MFC控件学习:图片(bmp/png)_第8张图片

MFC控件学习:图片(bmp/png)_第9张图片

你可能感兴趣的:(MFC,Windows应用开发,C/C++,c++,mfc,windows)