首页 > 代码库 > 使用bitblt函数加载位图,重绘时消失

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

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()去释放句柄,不然位图无法显示。
很不解为什么不释放句柄就不会显示信息,假如一直申请内存,最终不就是导致内存泄露,也不会导致没有信息的显示。希望有路过的大神帮我看看!
我的程序代码