我正在编写一个获取位图句柄的非托管 Win32 C++ 函数,我需要在其上进行绘制。
我的问题是要绘制我需要获取设备上下文,但是当我执行 GetDC (NULL) 时,它会为我提供 WINDOW 的设备上下文! GetDC()的参数是一个窗口句柄(HWND),但是我没有窗口;只是一个位图句柄。
我怎样才能在这个位图上绘图?谢谢!
最佳答案
除了 Pavel 的回答之外,“与屏幕兼容”也一直困扰着我,但是,由于 CreateCompatibleDC(NULL)
普遍用于此目的,我认为它是正确的。
我认为“兼容”的东西只与 DDB 有关(DC 设置为在当前屏幕的正确 DDB 类型上写入),但不影响 DIB 上的读/写。
因此,为了安全起见,如果您需要处理不必临时出现在屏幕上的位图,请始终使用 DIB 而不是 DDB,如今性能差异可以忽略不计。参见 here有关 DIB 和 DDB 的更多信息。
关于c++ - 如何绘制给定的位图句柄(C++/Win32)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3144340/