Visual c++ 如何将PNG加载到PictureControl中?

Visual c++ 如何将PNG加载到PictureControl中?,visual-c++,mfc,png,doublebuffered,Visual C++,Mfc,Png,Doublebuffered,我可以使用什么方法将PNG加载到图片控件中,以使用双缓冲的方式 我一直在使用,它处理BMP的双缓冲,以避免不断重新绘制的闪烁。现在我需要切换到PNG以减小应用程序大小 我发现了,但是整个库太大了,它会破坏切换到PNG的目的 有什么想法吗?继续使用BMP代码。要将其显示在屏幕上,您需要位图(或使用注释中提到的GDI+) 用CImage加载PNG文件。使用CIamge::Detach,您可以将PNG作为位图。而不是使用您当前的代码 将PNG加载到CImage可以从磁盘或带有流的内存缓冲区(资源)完成

我可以使用什么方法将PNG加载到图片控件中,以使用双缓冲的方式

我一直在使用,它处理BMP的双缓冲,以避免不断重新绘制的闪烁。现在我需要切换到PNG以减小应用程序大小

我发现了,但是整个库太大了,它会破坏切换到PNG的目的


有什么想法吗?

继续使用BMP代码。要将其显示在屏幕上,您需要位图(或使用注释中提到的GDI+)

用CImage加载PNG文件。使用CIamge::Detach,您可以将PNG作为位图。而不是使用您当前的代码

将PNG加载到CImage可以从磁盘或带有流的内存缓冲区(资源)完成。在这两种情况下,都使用CImage::Load


另外,MFC中有一个简单的CpnImage类,它从CBitmap派生而来,提供了您所需的所有功能。

您已经处理了绘制,因此您可以使用它来加载和绘制PNG,并且包含在任何Windows版本中。JPEG格式,更小。