gpt4 book ai didi

winapi - 如果 DibSection 独立于任何设备,为什么它需要设备上下文?

转载 作者:行者123 更新时间:2023-12-05 06:31:35 26 4
gpt4 key购买 nike

创建位图时,您有 三个 四个选择:

  • CreateBitmap : 创建一个设备相关的位图(它最好与您最终打算使用它的设备兼容)
  • CreateCompatibleBitmap : 创建依赖于设备的位图(与您提供的 DC 兼容)
  • CreateDIBitmap :创建与设备相关的位图,但允许您指定与设备无关的位以使用 1 初始化位图。 (功能等同于调用 CreateCompatibleBitmap + SetDIBits)
  • CreateDIBSection :创建独立于设备的位图(但我必须提供 DC?)

CreateCompatibleBitmap 需要一个 hdc 参数是有道理的:它必须知道要与哪个 DC 兼容。

Note: It doesn't make sense why CreateBitmap doesn't take an hdc. How does it know what DC to be compatible with?

CreateBitmap doesn't take a DC, and it doesn't know what DC to be compatible with. That's your job. And you better make sure it's compatible with the DC you eventually intended to use it with.

为什么 CreateDIBSection 获取设备上下文的句柄?

CreateDIBSection function

The CreateDIBSection function creates a DIB that applications can write to directly. The function gives you a pointer to the location of the bitmap bit values. You can supply a handle to a file-mapping object that the function will use to create the bitmap, or you can let the system allocate the memory for the bitmap.

| Function               | Type | Takes hdc |
|------------------------|------|-----------|
| CreateBitmap | DDB | No |
| CreateCompatibleBitmap | DDB | Yes |
| CreateDIBitmap | DDB | Yes |
| CreateDIBSection | DIB | Yes |

DIB 有什么用?

奖金问题

问。 CreateBitmap 是怎么回事?

一个。由您来确保它兼容。祝你好运!或者您可以只使用 CreateCompatibleBitmap

红利阅读

最佳答案

答案似乎是:

  • hdc 仅在 usage = DIB_PAL_COLORS 时才需要
  • 否则(即 usage = DIB_RGB_COLORS)则 hdc 可能 是可选的

关于winapi - 如果 DibSection 独立于任何设备,为什么它需要设备上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51757618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com