GetDIBits中的HDC是什么?

时间:2010-10-18 18:36:40

标签: gdi getdibits

我正在使用GetDIBits将屏幕兼容设备上下文中的位图数据转换为特定格式的DIB。我的印象是,当源位图为每像素8位或更少时,DC仅用于合成色表。由于我的源位图是一个完整的32位彩色图像,这是一个一次性的程序,我没有屏幕DC方便,我将HDC参数设置为NULL。这没用。一旦我抓住屏幕DC并将其传入,它就开始工作了。

这让我想知道为什么GetDIBits需要设备上下文。它用于什么?

1 个答案:

答案 0 :(得分:0)

在:

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使用此设备上下文中的信息来决定如何执行转换。