如何绘制给定的位图句柄(C++/Win32)?

use*_*493 5 c++ winapi bitmap handle draw

我正在编写一个非托管的Win32 C++函数来获取位图的句柄,我需要使用它.

我的问题是绘制我需要获取设备上下文,但是当我执行GetDC(NULL)时,它为我提供了WINDOW的设备上下文!GetDC()的参数是一个窗口句柄(HWND),但我没有窗口; 只是一个位图句柄.

我该如何在这个位图上绘图?谢谢!

Mat*_*lia 2

除了帕维尔的回答之外,“与屏幕兼容”也总是困扰着我,但是,由于CreateCompatibleDC(NULL)普遍用于此目的,我认为它是正确的。

我认为“兼容”的事情仅与DDB相关(DC设置为在当前屏幕的正确DDB类型上写入),但不影响DIB上的读/写。

因此,为了安全起见,如果您需要处理的位图不仅仅是暂时出现在屏幕上,请始终使用 DIB 而不是 DDB,如今性能差异可以忽略不计。有关 DIB 和 DDB 的更多信息,请参阅此处。