0

我想知道,如果我想创建不同的位图,

CreateCompatibleBitmap一次又一次地使用该函数,将其关联到同一个内存 CDC。

CreateBitmap 我一次又一次的意思是一样的SelectObject吗??

我问这个问题是因为我想对另一个 CDC 新创建的位图做点什么。

4

2 回答 2

1

没有看到具体的代码很难知道确切的问题,但 CreateCompatibleBitmap 通常用于双缓冲情况以避免闪烁。不是直接绘制到设备上下文 (DC),而是首先绘制到屏幕外或内存 DC,它基本上是绘制到位图。然后使用 BitBlt 将位图直接复制到屏幕 DC,因此看起来所有绘图都同时发生。

通常的步骤是这样的(并且可能会在每个 WM_PAINT 上发生):

  1. 使用屏幕 DC 创建一个与其“兼容”的位图,使用CreateCompatibleBitmap.
  2. 创建内存 DC
  3. 将位图选择到内存 DC 中(这就是您要绘制的内容)
  4. 绘制完成后BitBlt,将内存 DC 的位图放到屏幕 DC 上。

此处提供更多信息:Win32 内存 DC 指南(代码项目)

于 2012-08-24T11:04:20.547 回答
0

是的,每次循环调用 CreateCompatibleBitmap() 都会创建一个新的位图、一个新的内存分配、一个新的处理程序;

于 2013-01-05T19:01:41.377 回答