MFC加载PNG图片

在网上看到很多加载bmp格式的图片,但对加载png格式的图片却介绍的很少。下面我来写一种加载png格式图片的方法。

  1. 在对话框拖入一个Picture Control

  2. 先修改控件的ID,然后再给控件添加变量(先修改控件ID,不然不能给picture control添加变量)
    在这里插入图片描述

  3. 添加成员变量CImage,变量类型CImage,变量名image,image1.
    在这里插入图片描述

  4. 在XXXDlg文件中的OnInitDialog()函数中添加资源路径加载png图片。添加如下代码,路径自己更改:

BOOL CDlgCanshu::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	//SetWindowLong(m_hWnd, GWL_HWNDPARENT, NULL);

	//CRgn m_rgn;
	//RECT rc;
	GetWindowRect(&rc); //有边框对话框

	//GetClientRect(&rc);//无边框对话框
	//m_rgn.CreateRoundRectRgn(rc.left, rc.top, rc.right, rc.bottom, 20, 20); //矩形圆角

	m_rgn.CreateEllipticRgn(rc.left,rc.top,rc.right,rc.bottom);//椭圆
	//SetWindowRgn(m_rgn, TRUE);

	// TODO:  在此添加额外的初始化
	m_font.CreatePointFont(90, L"黑体");
	image.Load(_T("C:\\Users\\Wang\\Desktop\\我的项目\\TTSDetection\\image\\di.png"));
	image1.Load(_T("C:\\Users\\Wang\\Desktop\\我的项目\\TTSDetection\\image\\touming.png"));
	return TRUE;  // return TRUE unless you set the focus to a control
				  // 异常: OCX 属性页应返回 FALSE
}
  1. 在OnPaint()函数中添加如下代码(如果在主界面中就在else代码块添加代码,如果在子界面中就使用类向导添加OnInit和OnPaint函数,在函数里面添加对应代码)
   void CDlgCanshu::OnPaint()
{
	CPaintDC dc(this); // device context for painting
					   // TODO: 在此处添加消息处理程序代码
	CRect rect, rect1;
	m_canshupic1.GetWindowRect(&rect);
	m_canshupic2.GetWindowRect(&rect1);
	
	ScreenToClient(&rect);
	ScreenToClient(&rect1);
	
	CDialogEx::OnPaint();

	//绘制图片
	image.Draw(dc, rect);
	image1.Draw(dc, rect1);	  
}
  1. 代码运行成功如下:
    在这里插入图片描述
    该界面就是由两张背景图组成的。
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值