5

GetDIBits画面互換のデバイスコンテキストから特定の形式のDIBにビットマップデータを取得するために使用していました。DCは、ソースビットマップが8ビット/ピクセル以下の場合にカラーテーブルを合成するためにのみ必要であるという印象を受けました。ソースビットマップはフル32ビットカラー画像であり、これは1回限りのプログラムであり、画面DCが手元になかったため、HDCパラメーターをNULLに設定しました。これはうまくいきませんでした。画面のDCを取得して渡すと、動作を開始しました。

そのため、なぜGetDIBitsデバイスコンテキストが必要なのか疑問に思いました。それは何のために使われますか?

4

1 に答える 1

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
);

2番目の引数hbmpは、デバイスに依存しないビットマップからの色情報を使用して変更されるデバイスに依存するビットマップです。はhdc、この(デバイスに依存する)ビットマップが依存するデバイスコンテキストへのハンドルです。呼び出しが行われると、Windowsはこのデバイスコンテキストからの情報を使用して、変換の実行方法を決定します。

于 2010-10-18T18:43:22.737 に答える