将PNG或JPG图像加载到CMFCToolBarImages中

时间:2014-10-23 12:00:02

标签: c++ mfc png

MFC应用程序创建一个64 * 48大小的BMP图像阵列,并且MFC功能区库可以很好地加载它们。由于加载BMP需要时间,我尝试创建一系列PNG图像,然后将它们加载到功能区库中。

我尝试通过将BITMAPINFOHEADER.biCompression属性更改为BI_PNG来保存PNG格式的位图,但没有保存图像。我还尝试使用PNG格式的CImage对象保存位图:

 CImage TempImageObj;
 TempImageObj.Attach(hbmp);
 hr = TempImageObj.Save(filename, Gdiplus::ImageFormatPNG);

这次图像保存在文件中,但CMFCToolBarImages对象没有加载它们。

是否可以在MFC中以PNG格式创建图像(除了使用CImage Save方法)? 是否可以将PNG图像加载到CMFCToolBarImages对象中?

1 个答案:

答案 0 :(得分:0)

MFC无法直接创建.png。您可以使用CImage或任何免费的图像库,如CxImage

要打开.png,您可以使用CImage,然后将其用作HBITMAP对象:

CImage image;
image.Load( filename );   
HBITMAP hBmp = image; // Warning: image is still the data owner

toolbar.AddImage( hBmp);