题
我正在使用 GetDIBits
要将屏幕兼容设备上下文中的位图数据获取到特定格式的DIB中。我的印象是,当源位图为每金图8位或更小时时,直流只需要合成颜色表。由于我的源位图是完整的32位颜色图像,这是一个一次性程序,而且我没有方便的屏幕DC,因此我将HDC参数设置为NULL。这无效。一旦我抓住屏幕DC并将其传递给它,它就开始工作了。
那让我想知道为什么 GetDIBits
需要设备上下文。它是干什么用的?
解决方案
在:
int SetDIBits(
__in HDC hdc,
__in HBITMAP hbmp,
__in UINT uStartScan,
__in UINT cScanLines,
__in const VOID *lpvBits,
__in const BITMAPINFO *lpbmi,
__in UINT fuColorUse
);
第二个论点 hbmp
是设备依赖的位图,它将使用设备独立位图的颜色信息进行更改。这 hdc
是该(设备依赖)位图所取决于的设备上下文的手柄。呼叫后,Windows使用此设备上下文的信息来决定如何执行转换。
不隶属于 StackOverflow