BOOL BitBlt(
HDC hdcDest, // 设备描述表句柄
int nXDest, // 输出设备左上角x坐标
int nYDest, // 输出设备左上角y坐标
int nWidth, // 资源在输出设备上的宽度
int nHeight, // 资源在输出设备上的高度
HDC hdcSrc, // 资源设备描述表(虚拟设备描述表)
int nXSrc, // 指定资源左上角的x坐标
int nYSrc, // 指定资源左上角的y坐标
DWORD dwRop // 光栅操作代码
);
我们知道使用bitble()函数,我们需要虚拟设备描述表
(兼容DC)
,将我们要加载的信息首先写到虚拟设备描述表,然后采用某种映射模式(光栅操作代码),将信息输出到目的输出设备上去。
虚拟设备描述表和虚拟内存相似,是我们在内存上开辟的暂时存储信息的,与设备描述表相似的一块内存区域
首先要创建虚拟设备描述表(兼容DC):
hdcMem = CreateCompatibleDC(hdc);
最后要调用DeleteDC()去释放句柄,不然位图无法显示。
很不解为什么不释放句柄就不会显示信息,假如一直申请内存,最终不就是导致内存泄露,也不会导致没有信息的显示。希望有路过的大神帮我看看!
我的程序代码
使用bitblt函数加载位图,重绘时消失,布布扣,bubuko.com
原文地址:http://blog.csdn.net/renyhui/article/details/38736633