双缓冲显示PNG图片
双缓冲显示图片。。。其实就将图片预先存储在内存DC里,显示的时候直接映射到物理设备DC上,这样子能够快速显示图片,避免闪烁的现象。因此分成两步,创建内存DC中图像和 将内存DC图像复制到物理DC上。
核心是在内存DC中显示图片。
1. 首先要开辟出来一块内存以作DC用。
CDC MemDC;
2. 给内存DC赋以一定的物理属性。不同于物理DC,内存DC只是一块内存,没的物理属性,无法知道将要显示图片的设备信息。可通过以下语句给内存DC赋上物理属性:
MemDC.CreateCompatibleDC(&pDC);
3. 现在已经有了内存DC的基本物理信息了,好比知道了图纸的大小等基本属性,但是还没有图纸,现在创建图纸:
bmp.CreateCompatibleBitmap(&clDC,rect.Width(), rect.Height());
并通知内存DC使用这张图纸
MemDC.SelectObject(&bmp);