我想知道,如果我想创建不同的位图,
我一次又一次地使用CreateCompatibleBitmap
函数,将它与同一个内存CDC相关联。
与CreateBitmap
和SelectObject
一次又一次的意思相同?
我问这个问题是因为我想对另一个CDC的新创建的位图做一些事情。
答案 0 :(得分:1)
在没有看到特定代码的情况下,很难知道确切的问题,但CreateCompatibleBitmap通常用于双缓冲情况以避免闪烁。您不是直接绘制到设备上下文(DC),而是首先绘制到屏幕外或内存DC,它基本上是绘制到位图。然后使用BitBlt将位图直接复制到屏幕DC,因此看起来所有绘图都在同一时间发生。
通常的步骤是这样(并且可能会在每个WM_PAINT上发生):
CreateCompatibleBitmap
创建与其“兼容”的位图。BitBlt
时,内存DC的位图会显示在屏幕DC上。此处提供了更多信息:Guide to Win32 Memory DC (Code Project)
答案 1 :(得分:0)
是的,CreateCompatibleBitmap()每次在循环中调用它时都会创建一个新的位图,一个新的内存分配,一个新的处理程序;