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对象中?
答案 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);