使用bitblt函数加载位图,重绘时消失

来源:互联网 发布:武汉科瑞财富网络 编辑:程序博客网 时间:2024/05/21 21:50
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()去释放句柄,不然位图无法显示。
很不解为什么不释放句柄就不会显示信息,假如一直申请内存,最终不就是导致内存泄露,也不会导致没有信息的显示。希望有路过的大神帮我看看!
我的程序代码
0 0