本文介绍了将 png 资源加载到 CBitMap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将 png 资源加载到 CBitMap 中?当我尝试这个时,它似乎不起作用:

CImage 图像;image.LoadFromResource(AfxGetInstanceHandle(), IDB_PNG1);bitmap.Attach(image.Detach());

它给了我一个找不到资源类型的错误.有没有其他方法可以加载 PNG 资源?

解决方案

如果您使用的是 VS2008 或更新版本 (MFC Feature Pack),您可以使用从 CBitmapCPngImage> 并包含在 <afxtoolbarimages.h> 中.CPngImage 是一个 内部类:

以下类在 MFC 内部使用.为了完整起见,本节描述了这些内部类,但它们并不打算直接在您的代码中使用.

如果要使用CPngImage需要使用资源类型"PNG":

#define AFX_PNG_RESOURCE_TYPE _T("PNG")

示例用法

CPngImage 图像;image.Load(IDB_PNG1, nullptr);bitmap.Attach(image.Detach());

How do I load a png resource into a CBitMap? When I try this it doesn't seem to work:

CImage image;
image.LoadFromResource(AfxGetInstanceHandle(), IDB_PNG1);
bitmap.Attach(image.Detach());

It gives me an error resource type not found. Is there any other way to load a PNG resource?

解决方案

If you are using VS2008 or newer (MFC Feature Pack) you can use CPngImage which derives from CBitmap and is contained in <afxtoolbarimages.h>. CPngImage is an internal class:

If you want to use CPngImage you need to use the resource type "PNG":

Example usage

CPngImage image;
image.Load(IDB_PNG1, nullptr);
bitmap.Attach(image.Detach());

这篇关于将 png 资源加载到 CBitMap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-17 20:51