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

标签 c++ winapi bitmap handle draw

我正在编写一个获取位图句柄的非托管 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/

相关文章:

c++ - 如果在已知值范围内评估变量,如何改善其他条件?

c++ - 等待另一个进程锁定然后解锁 Win32 互斥量

c# - 将 BitmapImage 转换为位图,反之亦然

c# - 从裁剪图像创建新图像

c++ - Visual C++ 2010 和 Qt(moc 等)

c++ - 我如何在寄存器中加载负值 - 汇编语言

c++ - 在 C++11 中以无锁方式原子交换两个 std::atomic<T*> 对象?

c++ - 为什么 GetFullPathName 返回工作目录?

python错误抑制信号18到win32

android - 从 Android 相机 Surface 获取 RGB 值